001    /**
002     * Copyright 2005-2014 The Kuali Foundation
003     *
004     * Licensed under the Educational Community License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     * http://www.opensource.org/licenses/ecl2.php
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.kuali.rice.kim.ldap;
017    
018    import org.kuali.rice.kim.api.identity.CodedAttribute;
019    import org.kuali.rice.kim.api.identity.address.EntityAddress;
020    import org.springframework.ldap.core.DirContextOperations;
021    
022    /**
023     * 
024     * @author Kuali Rice Team (rice.collab@kuali.org)
025     */
026    public class EntityAddressMapper extends BaseMapper<EntityAddress> {
027            
028            @Override
029            EntityAddress mapDtoFromContext(DirContextOperations context) {
030                    return mapDtoFromContext(context, false);
031            }
032            
033        EntityAddress mapDtoFromContext(DirContextOperations context, boolean isdefault) {
034            EntityAddress.Builder builder = mapBuilderFromContext(context, isdefault);
035            return builder != null ? builder.build() : null;
036        }
037    
038        EntityAddress.Builder mapBuilderFromContext(DirContextOperations context) {
039            return mapBuilderFromContext(context, false);
040        }
041    
042        EntityAddress.Builder mapBuilderFromContext(DirContextOperations context, boolean isdefault) {        
043            final EntityAddress.Builder builder = EntityAddress.Builder.create();
044            final String line1              = context.getStringAttribute("employeePrimaryDeptName");
045            final String line2              = context.getStringAttribute("employeePoBox");
046            final String city               = context.getStringAttribute("employeeCity");
047            final String stateProvinceCode  = context.getStringAttribute("employeeState");
048            final String postalCode         = context.getStringAttribute("employeeZip");
049            
050            builder.setAddressType(CodedAttribute.Builder.create("WORK"));
051            builder.setLine1(line1);
052            builder.setLine2(line2);
053            builder.setCity(city);
054            builder.setStateProvinceCode(stateProvinceCode);
055            builder.setPostalCode(postalCode);
056            builder.setDefaultValue(isdefault);
057            builder.setActive(true);
058            return builder;
059        }
060        
061    }