001    package org.kuali.ole.ingest;
002    
003    import com.thoughtworks.xstream.converters.Converter;
004    import com.thoughtworks.xstream.converters.MarshallingContext;
005    import com.thoughtworks.xstream.converters.UnmarshallingContext;
006    import com.thoughtworks.xstream.io.HierarchicalStreamReader;
007    import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
008    import org.kuali.ole.ingest.pojo.OleAddressLine;
009    
010    /**
011     * OlePatronAddressLineConverter is a converter class used to convert object into data and data into object by using
012     * hierarchicalStreamWriter and hierarchicalStreamReader respectively
013     */
014    public class OlePatronAddressLineConverter implements Converter {
015        /**
016         * This method convert the object into data by using hierarchicalStreamWriter.
017         * @param obj
018         * @param hierarchicalStreamWriter
019         * @param marshallingContext
020         */
021            @Override
022            public void marshal(Object obj, HierarchicalStreamWriter hierarchicalStreamWriter, MarshallingContext marshallingContext) {
023                OleAddressLine oleAddressLine = (OleAddressLine) obj;
024                hierarchicalStreamWriter.setValue(oleAddressLine.getAddressLine());
025            }
026    
027        /**
028         *  This method convert the data into object by using hierarchicalStreamReader.
029         * @param hierarchicalStreamReader
030         * @param unmarshallingContext
031         * @return  oleAddressLine.
032         */
033            @Override
034            public Object unmarshal(HierarchicalStreamReader hierarchicalStreamReader, UnmarshallingContext unmarshallingContext) {
035                OleAddressLine oleAddressLine = new OleAddressLine();
036                oleAddressLine.setAddressLine(hierarchicalStreamReader.getValue());
037                return oleAddressLine;
038            }
039    
040        /**
041         *  This method returns True/False.
042         *  This method check whether the class is OleAddressLine class or not.
043         * @param aClass
044         * @return  boolean
045         */
046            @Override
047            public boolean canConvert(Class aClass) {
048                return aClass.equals(OleAddressLine.class);
049            }
050    }