/*
* Copyright 2012 Shared Learning Collaborative, LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
*
*/
package org.slc.sli.dashboard.entity.util;
import java.util.HashMap;
import java.util.Map;
import org.slc.sli.dashboard.entity.GenericEntity;
/**
* @author tosako
*
*/
public class GenericEntityEnhancer {
private static Map<String, String> gradeConversion = null;
static {
gradeConversion = new HashMap<String, String>();
gradeConversion.put("Adult Education", "AE");
gradeConversion.put("Early Education", "EE");
gradeConversion.put("Eighth grade", "8");
gradeConversion.put("Eleventh grade", "11");
gradeConversion.put("Fifth grade", "5");
gradeConversion.put("First grade", "1");
gradeConversion.put("Fourth grade", "4");
gradeConversion.put("Grade 13", "13");
gradeConversion.put("Infant/toddler", "IN");
gradeConversion.put("Kindergarten", "K");
gradeConversion.put("Ninth grade", "9");
gradeConversion.put("Other", "O");
gradeConversion.put("Postsecondary", "+S");
gradeConversion.put("Preschool/Prekindergarten", "PK");
gradeConversion.put("Second grade", "2");
gradeConversion.put("Seventh grade", "7");
gradeConversion.put("Sixth grade", "6");
gradeConversion.put("Tenth grade", "10");
gradeConversion.put("Third grade", "3");
gradeConversion.put("Transitional Kindergarten", "TK");
gradeConversion.put("Twelfth grade", "12");
gradeConversion.put("Ungraded", "UG");
}
/**
* Enhance input GenericEntity for Student
*
* @param entity
* @return enhanced GenericEntity
*/
public static GenericEntity enhanceStudent(GenericEntity entity) {
// determin this entity has gradeLevel
String gradeLevel = entity.getString("gradeLevel");
// if gradeLevel exists, then add gradeLevelCode in the entity
if (gradeLevel != null && gradeConversion.containsKey(gradeLevel)) {
entity.put("gradeLevelCode", gradeConversion.get(gradeLevel));
}
return entity;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public static Map convertGradeLevel(Map entity, String elementName) {
// determin this entity has gradeLevel
String gradeLevel = (String) entity.get(elementName);
// if gradeLevel exists, then add gradeLevelCode in the entity
if (gradeLevel != null && gradeConversion.containsKey(gradeLevel)) {
entity.put(elementName + "Code", gradeConversion.get(gradeLevel));
}
return entity;
}
public static String convertGradeLevel(String gradeLevel) {
return gradeConversion.get(gradeLevel);
}
/**
* Enhance input GenericEntity for StudentiSchoolAssociation
*
* @param entity
* @return enhanced GenericEntity
*/
public static GenericEntity enhanceStudentSchoolAssociation(GenericEntity entity) {
// repeat for another element
String gradeLevel = entity.getString("entryGradeLevel");
// if gradeLevel exists, then add gradeLevelCode in the entity
if (gradeLevel != null && gradeConversion.containsKey(gradeLevel)) {
entity.put("entryGradeLevelCode", gradeConversion.get(gradeLevel));
}
return entity;
}
}