/* * Will read a number of SchoolInfo Objects from a XML file. The location of the XML File is stored in the provider.properties file * in the "provider.school.file.location" property. */ public SchoolProvider() { super(); logger.debug("Constructor for SchoolProvider has been called."); if (schools == null) { logger.debug( "Constructor for SchoolProvider called for the first time. Try to load students from XML file..."); // Load all school so that we can do some real stuff here. String schoolFile = getServiceProperties().getPropertyAsString("provider.school.file.location", null); if (schoolFile != null) { try { String inputXML = FileReaderWriter.getFileContent(schoolFile, ModelObjectConstants.UTF_8); XSchoolCollectionType schoolList = (XSchoolCollectionType) getUnmarshaller() .unmarshalFromXML(inputXML, getMultiObjectClassInfo().getObjectType()); if ((schoolList != null) && (schoolList.getXSchool() != null)) { schools = new HashMap<String, XSchoolType>(); for (XSchoolType schoolInfo : schoolList.getXSchool()) { schools.put(schoolInfo.getRefId(), schoolInfo); } logger.debug("Loaded " + schools.size() + " schools into memory."); } } catch (Exception ex) { ex.printStackTrace(); logger.debug("Loaded " + schools.size() + " schools into memory."); } } // If schools are still null then something must have failed and would have been logged. For // the purpose of making things work ok we initialise the students hashmap now. It will avoid // null pointer errors. if (schools == null) { schools = new HashMap<String, XSchoolType>(); } } }
public StudentPersonalProvider() { super(); logger.debug("Constructor for StudentPersonalProvider has been called."); if (students == null) { logger.debug( "Constructor for StudentPersonalProvider called for the first time. Try to load students from XML file..."); // Load all students so that we can do some real stuff here. String studentFile = getServiceProperties().getPropertyAsString("provider.student.file.location", null); if (studentFile != null) { // String inputXML = FileReaderWriter.getFileContent(studentFile, // getProviderEnvironment().getCharsetEncoding()); String inputXML = FileReaderWriter.getFileContent(studentFile, ModelObjectConstants.UTF_8); try { StudentPersonalCollectionType studentList = (StudentPersonalCollectionType) getUnmarshaller() .unmarshalFromXML(inputXML, getMultiObjectClassInfo().getObjectType()); if ((studentList != null) && (studentList.getStudentPersonal() != null)) { students = new HashMap<String, StudentPersonalType>(); for (StudentPersonalType studentPersonal : studentList.getStudentPersonal()) { // studentPersonal.setRefId(UUIDGenerator.getUUID()); students.put(studentPersonal.getRefId(), studentPersonal); } logger.debug("Loaded " + students.size() + " Students into memory."); } } catch (UnmarshalException ex) { ex.printStackTrace(); } catch (UnsupportedMediaTypeException ex) { ex.printStackTrace(); } } } if (teachingGroupStudents == null) { logger.debug("Try to load students for teaching group from XML file..."); // Load all students so that we can do some real stuff here. String fileName = getServiceProperties().getPropertyAsString("provider.teachinggroup.file.location", null); if (fileName != null) { String inputXML = FileReaderWriter.getFileContent(fileName, ModelObjectConstants.UTF_8); try { TeachingGroupCollectionType classes = (TeachingGroupCollectionType) getUnmarshaller() .unmarshalFromXML( inputXML, ModelObjectConstants.TEACHING_GROUPS.getObjectType()); if ((classes != null) && (classes.getTeachingGroup() != null)) { // Get student list of first teaching group JAXBElement<StudentList> jaxbClassStudents = classes.getTeachingGroup().get(0).getStudentList(); if (jaxbClassStudents != null) { teachingGroupStudents = new HashMap<String, StudentPersonalType>(); StudentList classStudents = jaxbClassStudents.getValue(); for (TeachingGroupStudent student : classStudents.getTeachingGroupStudent()) { teachingGroupStudents.put( student.getStudentPersonalRefId().getValue(), students.get(student.getStudentPersonalRefId().getValue())); } } logger.debug( "Loaded " + teachingGroupStudents.size() + " teaching group students for a class into memory."); } } catch (UnmarshalException ex) { ex.printStackTrace(); } catch (UnsupportedMediaTypeException ex) { ex.printStackTrace(); } } } // If students are still null then something must have failed and would have been logged. // For the purpose of making things work ok we initialise the students hashmap now. It will // avoid null pointer errors. if (students == null) { students = new HashMap<String, StudentPersonalType>(); } if (teachingGroupStudents == null) { teachingGroupStudents = new HashMap<String, StudentPersonalType>(); } }