Example usage for org.apache.commons.lang RandomStringUtils randomNumeric

List of usage examples for org.apache.commons.lang RandomStringUtils randomNumeric

Introduction

In this page you can find the example usage for org.apache.commons.lang RandomStringUtils randomNumeric.

Prototype

public static String randomNumeric(int count) 

Source Link

Document

Creates a random string whose length is the number of characters specified.

Characters will be chosen from the set of numeric characters.

Usage

From source file:org.ojbc.bundles.adapters.staticmock.samplegen.CustodySampleGenerator.java

Document buildCustodyDetailDoc(PersonElementWrapper person, String recordId)
        throws ParserConfigurationException {

    Document rCustodyDetailDoc = getNewDocument();

    String personRecId = "Person_" + recordId;

    Element rootCustodyResultsElement = rCustodyDetailDoc
            .createElementNS(OjbcNamespaceContext.NS_CUSTODY_QUERY_RESULTS_EXCH_DOC, "CustodyQueryResults");
    rootCustodyResultsElement.setPrefix(OjbcNamespaceContext.NS_PREFIX_CUSTODY_QUERY_RESULTS_EXCH_DOC);
    rCustodyDetailDoc.appendChild(rootCustodyResultsElement);

    Element docCreationDateElement = XmlUtils.appendElement(rootCustodyResultsElement,
            OjbcNamespaceContext.NS_NC_30, "DocumentCreationDate");
    Element dateTimeElement = XmlUtils.appendElement(docCreationDateElement, OjbcNamespaceContext.NS_NC_30,
            "DateTime");
    dateTimeElement.setTextContent(CURRENT_DATE);

    Element documentIdElement = XmlUtils.appendElement(rootCustodyResultsElement, OjbcNamespaceContext.NS_NC_30,
            "DocumentIdentification");
    Element docIdValElement = XmlUtils.appendElement(documentIdElement, OjbcNamespaceContext.NS_NC_30,
            "IdentificationID");
    String sDocId = RandomStringUtils.randomNumeric(7);
    docIdValElement.setTextContent(sDocId);

    Element sysIdElement = XmlUtils.appendElement(rootCustodyResultsElement, OjbcNamespaceContext.NS_INTEL_31,
            "SystemIdentification");
    Element sysIdValElement = XmlUtils.appendElement(sysIdElement, OjbcNamespaceContext.NS_NC_30,
            "IdentificationID");
    String systemId = RandomStringUtils.randomNumeric(6);
    sysIdValElement.setTextContent(systemId);

    Element sysIdSystemNameElement = XmlUtils.appendElement(sysIdElement, OjbcNamespaceContext.NS_NC_30,
            "SystemName");
    sysIdSystemNameElement.setTextContent("Custody Detail");

    Element custodyElement = XmlUtils.appendElement(rootCustodyResultsElement,
            OjbcNamespaceContext.NS_CUSTODY_QUERY_RESULTS_EXT, "Custody");

    Element bookingElement = XmlUtils.appendElement(custodyElement, OjbcNamespaceContext.NS_JXDM_51, "Booking");
    String bookingId = "Booking_" + recordId;
    XmlUtils.addAttribute(bookingElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", bookingId);

    Element activityDateElement = XmlUtils.appendElement(bookingElement, OjbcNamespaceContext.NS_NC_30,
            "ActivityDate");
    Element activityDateTimeElement = XmlUtils.appendElement(activityDateElement, OjbcNamespaceContext.NS_NC_30,
            "DateTime");
    activityDateTimeElement.setTextContent(CURRENT_DATE);

    Element detentionFacElement = XmlUtils.appendElement(bookingElement, OjbcNamespaceContext.NS_JXDM_51,
            "BookingDetentionFacility");
    Element bookingFacIdElement = XmlUtils.appendElement(detentionFacElement, OjbcNamespaceContext.NS_NC_30,
            "FacilityIdentification");
    Element facIdValElement = XmlUtils.appendElement(bookingFacIdElement, OjbcNamespaceContext.NS_NC_30,
            "IdentificationID");
    String facIdSample = RandomStringUtils.randomNumeric(6);
    facIdValElement.setTextContent(facIdSample);

    Element bookingSubjectElement = XmlUtils.appendElement(bookingElement, OjbcNamespaceContext.NS_JXDM_51,
            "BookingSubject");

    Element roleOfPersonElement = XmlUtils.appendElement(bookingSubjectElement, OjbcNamespaceContext.NS_NC_30,
            "RoleOfPerson");
    XmlUtils.addAttribute(roleOfPersonElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", personRecId);

    Element bookingSubjectIdElement = XmlUtils.appendElement(bookingSubjectElement,
            OjbcNamespaceContext.NS_JXDM_51, "SubjectIdentification");
    Element bookingSubjectIdValElement = XmlUtils.appendElement(bookingSubjectIdElement,
            OjbcNamespaceContext.NS_NC_30, "IdentificationID");
    String bookingSubjectId = RandomStringUtils.randomAlphanumeric(8);
    bookingSubjectIdValElement.setTextContent(bookingSubjectId);

    Element detentionElement = XmlUtils.appendElement(custodyElement, OjbcNamespaceContext.NS_JXDM_51,
            "Detention");
    String detentionId = "Detention_" + recordId;
    XmlUtils.addAttribute(detentionElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", detentionId);

    Element detentionActivityDate = XmlUtils.appendElement(detentionElement, OjbcNamespaceContext.NS_NC_30,
            "ActivityDate");
    Element detentionDateValElement = XmlUtils.appendElement(detentionActivityDate,
            OjbcNamespaceContext.NS_NC_30, "Date");
    detentionDateValElement.setTextContent(CURRENT_DATE);

    Element supervisionCustodyStatusElement = XmlUtils.appendElement(detentionElement,
            OjbcNamespaceContext.NS_NC_30, "SupervisionCustodyStatus");

    Element supervCustStatusDescTxtElement = XmlUtils.appendElement(supervisionCustodyStatusElement,
            OjbcNamespaceContext.NS_NC_30, "StatusDescriptionText");
    List<String> supervCustStatusDecTxtList = Arrays.asList("Pretrial", "Post-Trial", "In-Trial");
    int custStatusIndex = RANDOM.nextInt(supervCustStatusDecTxtList.size());
    String custStatusSample = supervCustStatusDecTxtList.get(custStatusIndex);
    supervCustStatusDescTxtElement.setTextContent(custStatusSample);

    Element pretrialCatCodeElement = XmlUtils.appendElement(supervisionCustodyStatusElement,
            OjbcNamespaceContext.NS_ADAMS_CO_BOOKING_CODES_EXT, "PreTrialCategoryCode");

    List<String> pretrialCatCodeList = Arrays.asList("C-SRP", "A-XYZ", "B-897");
    int pretrialCatCodeIndex = RANDOM.nextInt(pretrialCatCodeList.size());
    String pretrialCatCodeSample = pretrialCatCodeList.get(pretrialCatCodeIndex);
    pretrialCatCodeElement.setTextContent(pretrialCatCodeSample);

    Element supervisionAugmentElement = XmlUtils.appendElement(detentionElement,
            OjbcNamespaceContext.NS_JXDM_51, "SupervisionAugmentation");

    Element supervisionReleaseDateElement = XmlUtils.appendElement(supervisionAugmentElement,
            OjbcNamespaceContext.NS_JXDM_51, "SupervisionReleaseDate");

    Element supervisionReleaseDateValElement = XmlUtils.appendElement(supervisionReleaseDateElement,
            OjbcNamespaceContext.NS_NC_30, "DateTime");
    supervisionReleaseDateValElement.setTextContent(CURRENT_DATE);

    Element supervisionAreaIdElement = XmlUtils.appendElement(supervisionAugmentElement,
            OjbcNamespaceContext.NS_JXDM_51, "SupervisionAreaIdentification");

    Element supervisionAreaIdValElement = XmlUtils.appendElement(supervisionAreaIdElement,
            OjbcNamespaceContext.NS_NC_30, "IdentificationID");
    String supervisionAreaId = RandomStringUtils.randomNumeric(9);
    supervisionAreaIdValElement.setTextContent(supervisionAreaId);

    Element immigrationHoldElement = XmlUtils.appendElement(detentionElement,
            OjbcNamespaceContext.NS_CUSTODY_QUERY_RESULTS_EXT, "DetentiontImmigrationHoldIndicator");

    boolean detentImmigHoldSample = RANDOM.nextBoolean();
    String sDetentImmigHoldSample = String.valueOf(detentImmigHoldSample);
    immigrationHoldElement.setTextContent(sDetentImmigHoldSample);

    Element holdForAgencyElement = XmlUtils.appendElement(detentionElement,
            OjbcNamespaceContext.NS_CUSTODY_QUERY_RESULTS_EXT, "HoldForAgency");
    Element orgNameElement = XmlUtils.appendElement(holdForAgencyElement, OjbcNamespaceContext.NS_NC_30,
            "OrganizationName");

    List<String> holdForAgencyOrgNameList = Arrays.asList("Acme", "Chips");

    int holdForAgencyIndex = RANDOM.nextInt(holdForAgencyOrgNameList.size());
    String sHoldForAgencyOrgNameSample = holdForAgencyOrgNameList.get(holdForAgencyIndex);
    orgNameElement.setTextContent(sHoldForAgencyOrgNameSample);

    Element inmateWorkReleaseIndicator = XmlUtils.appendElement(detentionElement,
            OjbcNamespaceContext.NS_CUSTODY_QUERY_RESULTS_EXT, "InmateWorkReleaseIndicator");

    boolean inmateWorkReleaseSample = RANDOM.nextBoolean();
    String sInmateWorkReleaseSample = String.valueOf(inmateWorkReleaseSample);
    inmateWorkReleaseIndicator.setTextContent(sInmateWorkReleaseSample);

    Element inmateWorkerIndicatorElement = XmlUtils.appendElement(detentionElement,
            OjbcNamespaceContext.NS_CUSTODY_QUERY_RESULTS_EXT, "InmateWorkerIndicator");

    boolean bInmateWorkerSample = RANDOM.nextBoolean();
    String sInmateWorkerSample = String.valueOf(bInmateWorkerSample);
    inmateWorkerIndicatorElement.setTextContent(sInmateWorkerSample);

    Element bailBondElement = XmlUtils.appendElement(custodyElement, OjbcNamespaceContext.NS_JXDM_51,
            "BailBond");
    String bailBondId = "Bond_" + recordId;
    XmlUtils.addAttribute(bailBondElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", bailBondId);

    Element activityCatElement = XmlUtils.appendElement(bailBondElement, OjbcNamespaceContext.NS_NC_30,
            "ActivityCategoryText");

    List<String> bailBondActivitySampleList = Arrays.asList("Traffic Violation", "Speeding", "Noise Violation");
    int bailBondActivityIndex = RANDOM.nextInt(bailBondActivitySampleList.size());
    String bailBondActivity = bailBondActivitySampleList.get(bailBondActivityIndex);
    activityCatElement.setTextContent(bailBondActivity);

    Element activityStatusElement = XmlUtils.appendElement(bailBondElement, OjbcNamespaceContext.NS_NC_30,
            "ActivityStatus");

    Element activityStatusDescTxtElement = XmlUtils.appendElement(activityStatusElement,
            OjbcNamespaceContext.NS_NC_30, "StatusDescriptionText");

    List<String> bailBondStatusList = Arrays.asList("Paid", "Unpaid", "Partial Payment");
    int bailBondStatusIndex = RANDOM.nextInt(bailBondStatusList.size());
    String sBailBond = bailBondStatusList.get(bailBondStatusIndex);

    activityStatusDescTxtElement.setTextContent(sBailBond);

    Element bailBondAmountElement = XmlUtils.appendElement(bailBondElement, OjbcNamespaceContext.NS_JXDM_51,
            "BailBondAmount");
    Element bailBondAmountValElement = XmlUtils.appendElement(bailBondAmountElement,
            OjbcNamespaceContext.NS_NC_30, "Amount");
    String sBailAmount = RandomStringUtils.randomNumeric(4);
    bailBondAmountValElement.setTextContent(sBailAmount);

    Element chargeElement = XmlUtils.appendElement(custodyElement, OjbcNamespaceContext.NS_JXDM_51, "Charge");
    String chargeId = "Charge_" + recordId;
    XmlUtils.addAttribute(chargeElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", chargeId);

    List<String> chargeCatList = Arrays.asList("Speeding", "Seat Belt Usage");
    int chargeCatIndex = RANDOM.nextInt(chargeCatList.size());
    String sChargeCatSample = chargeCatList.get(chargeCatIndex);

    Element chargeCatDescTxtElement = XmlUtils.appendElement(chargeElement, OjbcNamespaceContext.NS_JXDM_51,
            "ChargeCategoryDescriptionText");
    chargeCatDescTxtElement.setTextContent(sChargeCatSample);

    List<String> chargeDescriptionTxtList = Arrays.asList("Intoxicated", "Speeding", "No Seatbelt");
    int chargeDescRandomIndex = RANDOM.nextInt(chargeDescriptionTxtList.size());
    String sChargeDesc = chargeDescriptionTxtList.get(chargeDescRandomIndex);
    Element chargeDescriptionTextElement = XmlUtils.appendElement(chargeElement,
            OjbcNamespaceContext.NS_JXDM_51, "ChargeDescriptionText");
    chargeDescriptionTextElement.setTextContent(sChargeDesc);

    Element chargeHighestIndicatorElement = XmlUtils.appendElement(chargeElement,
            OjbcNamespaceContext.NS_JXDM_51, "ChargeHighestIndicator");

    boolean bChargeHighestIndicatorSample = RANDOM.nextBoolean();

    String sChargeHighestIndicatorSample = String.valueOf(bChargeHighestIndicatorSample);

    chargeHighestIndicatorElement.setTextContent(sChargeHighestIndicatorSample);

    Element chargeSequenceIDElement = XmlUtils.appendElement(chargeElement, OjbcNamespaceContext.NS_JXDM_51,
            "ChargeSequenceID");

    String sChargeSeqId = RandomStringUtils.randomNumeric(7);

    chargeSequenceIDElement.setTextContent(sChargeSeqId);

    Element chargeStatuteElement = XmlUtils.appendElement(chargeElement, OjbcNamespaceContext.NS_JXDM_51,
            "ChargeStatute");

    Element chargeStatuteCodeIdElement = XmlUtils.appendElement(chargeStatuteElement,
            OjbcNamespaceContext.NS_JXDM_51, "StatuteCodeSectionIdentification");

    Element chargeStatuteCodeIdValElement = XmlUtils.appendElement(chargeStatuteCodeIdElement,
            OjbcNamespaceContext.NS_NC_30, "IdentificationID");

    String sStatuteCodeId = RandomStringUtils.randomNumeric(6);
    chargeStatuteCodeIdValElement.setTextContent(sStatuteCodeId);

    // Arrest// w ww. ja v a  2s. c  o  m

    Element arrestElement = XmlUtils.appendElement(custodyElement, OjbcNamespaceContext.NS_JXDM_51, "Arrest");
    String arrestId = "Arrest_" + recordId;
    XmlUtils.addAttribute(arrestElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", arrestId);

    Element arrestAgencyElement = XmlUtils.appendElement(arrestElement, OjbcNamespaceContext.NS_JXDM_51,
            "ArrestAgency");

    Element arrestOrgName = XmlUtils.appendElement(arrestAgencyElement, OjbcNamespaceContext.NS_NC_30,
            "OrganizationName");

    List<String> arrestAgencyList = Arrays.asList("NYPD", "LAPD", "CHIPS", "Acme", "Matlock");
    int arrestAgencyIndex = RANDOM.nextInt(arrestAgencyList.size());
    String sArrestAgency = arrestAgencyList.get(arrestAgencyIndex);
    arrestOrgName.setTextContent(sArrestAgency);

    Element arrestLocationElement = XmlUtils.appendElement(arrestElement, OjbcNamespaceContext.NS_JXDM_51,
            "ArrestLocation");
    String arrestLocationId = "Loc_" + recordId;
    XmlUtils.addAttribute(arrestLocationElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref",
            arrestLocationId);

    Element nextCourtEventElement = XmlUtils.appendElement(custodyElement, OjbcNamespaceContext.NS_NIEM_CYFS_31,
            "NextCourtEvent");
    String nextCourtEventId = "Event_" + recordId;
    XmlUtils.addAttribute(nextCourtEventElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", nextCourtEventId);

    Element nextCourtActivityDateElement = XmlUtils.appendElement(nextCourtEventElement,
            OjbcNamespaceContext.NS_NC_30, "ActivityDate");

    Element activityDateValElement = XmlUtils.appendElement(nextCourtActivityDateElement,
            OjbcNamespaceContext.NS_NC_30, "Date");
    activityDateValElement.setTextContent(CURRENT_DATE);

    Element courtEventCourtElement = XmlUtils.appendElement(nextCourtEventElement,
            OjbcNamespaceContext.NS_JXDM_51, "CourtEventCourt");

    Element courtNameElement = XmlUtils.appendElement(courtEventCourtElement, OjbcNamespaceContext.NS_JXDM_51,
            "CourtName");

    List<String> courtNameSampleList = Arrays.asList("Matlock", "Supreme Court", "Traffic Court");
    int courtSampleIndex = RANDOM.nextInt(courtNameSampleList.size());
    String sCourtSample = courtNameSampleList.get(courtSampleIndex);

    courtNameElement.setTextContent(sCourtSample);

    Element personElement = XmlUtils.appendElement(custodyElement, OjbcNamespaceContext.NS_NC_30, "Person");

    XmlUtils.addAttribute(personElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", personRecId);

    DateTime personDob = person.birthdate;
    Element personBirthDateElement = XmlUtils.appendElement(personElement, OjbcNamespaceContext.NS_NC_30,
            "PersonBirthDate");
    Element personDobValElement = XmlUtils.appendElement(personBirthDateElement, OjbcNamespaceContext.NS_NC_30,
            "Date");
    String sPersonDob = personDob.toString("yyyy-MM-dd");
    personDobValElement.setTextContent(sPersonDob);

    Element personDigitalImgElement = XmlUtils.appendElement(personElement, OjbcNamespaceContext.NS_NC_30,
            "PersonDigitalImage");
    Element personImgBinElement = XmlUtils.appendElement(personDigitalImgElement, OjbcNamespaceContext.NS_NC_30,
            "Base64BinaryObject");

    String sSampleImgBin = RandomStringUtils.randomAlphanumeric(20);
    personImgBinElement.setTextContent(sSampleImgBin);

    List<String> ethnicitySampleList = Arrays.asList("African American", "Latino", "Caucasion");
    int ethnicityRandomIndex = RANDOM.nextInt(ethnicitySampleList.size());
    String ethnicitySample = ethnicitySampleList.get(ethnicityRandomIndex);

    Element ethnicityElement = XmlUtils.appendElement(personElement, OjbcNamespaceContext.NS_JXDM_51,
            "PersonEthnicityCode");
    ethnicityElement.setTextContent(ethnicitySample);

    Element personNameElement = XmlUtils.appendElement(personElement, OjbcNamespaceContext.NS_NC_30,
            "PersonName");

    String sPersonFirstName = person.firstName;
    Element personGivenNameElement = XmlUtils.appendElement(personNameElement, OjbcNamespaceContext.NS_NC_30,
            "PersonGivenName");
    personGivenNameElement.setTextContent(sPersonFirstName);

    String sPersonMiddleName = person.middleName;
    Element personMiddleNameElement = XmlUtils.appendElement(personNameElement, OjbcNamespaceContext.NS_NC_30,
            "PersonMiddleName");
    personMiddleNameElement.setTextContent(sPersonMiddleName);

    String sPersonLastName = person.lastName;
    Element personSurNameElement = XmlUtils.appendElement(personNameElement, OjbcNamespaceContext.NS_NC_30,
            "PersonSurName");
    personSurNameElement.setTextContent(sPersonLastName);

    List<String> raceSampleList = Arrays.asList("B", "A", "W");
    int raceIndex = RANDOM.nextInt(raceSampleList.size());
    String sRandomRace = raceSampleList.get(raceIndex);
    Element personRaceElement = XmlUtils.appendElement(personElement, OjbcNamespaceContext.NS_JXDM_51,
            "PersonRaceCode");
    personRaceElement.setTextContent(sRandomRace);

    Element personResidentTxtElement = XmlUtils.appendElement(personElement, OjbcNamespaceContext.NS_NC_30,
            "PersonResidentText");
    String sampleResidentTxt = person.addressStreetName;
    personResidentTxtElement.setTextContent(sampleResidentTxt);

    String sPersonSex = person.sex;
    Element personSexElement = XmlUtils.appendElement(personElement, OjbcNamespaceContext.NS_JXDM_51,
            "PersonSexCode");
    personSexElement.setTextContent(sPersonSex);

    String sPersonSSN = RandomStringUtils.randomNumeric(9);
    Element personSsnElement = XmlUtils.appendElement(personElement, OjbcNamespaceContext.NS_NC_30,
            "PersonSSNIdentification");
    Element personSsnValElement = XmlUtils.appendElement(personSsnElement, OjbcNamespaceContext.NS_NC_30,
            "IdentificationID");
    personSsnValElement.setTextContent(sPersonSSN);

    Element personAugmentElement = XmlUtils.appendElement(personElement, OjbcNamespaceContext.NS_JXDM_51,
            "PersonAugmentation");

    Element personStateFingerIdElement = XmlUtils.appendElement(personAugmentElement,
            OjbcNamespaceContext.NS_JXDM_51, "PersonStateFingerprintIdentification");

    Element personStateFingerIdValElement = XmlUtils.appendElement(personStateFingerIdElement,
            OjbcNamespaceContext.NS_NC_30, "IdentificationID");

    String sPersonSid = RandomStringUtils.randomAlphanumeric(8);

    personStateFingerIdValElement.setTextContent(sPersonSid);

    Element locationElement = XmlUtils.appendElement(custodyElement, OjbcNamespaceContext.NS_NC_30, "Location");
    String locationId = "Loc_" + recordId;
    XmlUtils.addAttribute(locationElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", locationId);

    Element locationAddressElement = XmlUtils.appendElement(locationElement, OjbcNamespaceContext.NS_NC_30,
            "Address");

    Element locAddressFullElement = XmlUtils.appendElement(locationAddressElement,
            OjbcNamespaceContext.NS_NC_30, "AddressFullText");

    String locAddress = person.addressStreetName;

    locAddressFullElement.setTextContent(locAddress);

    Element activityChargeAssocElement = XmlUtils.appendElement(custodyElement, OjbcNamespaceContext.NS_JXDM_51,
            "ActivityChargeAssociation");

    Element activityBookingElement = XmlUtils.appendElement(activityChargeAssocElement,
            OjbcNamespaceContext.NS_NC_30, "Activity");
    XmlUtils.addAttribute(activityBookingElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", bookingId);

    Element activityEventElement = XmlUtils.appendElement(activityChargeAssocElement,
            OjbcNamespaceContext.NS_NC_30, "Activity");
    XmlUtils.addAttribute(activityEventElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", nextCourtEventId);

    Element activityDetentionElement = XmlUtils.appendElement(activityChargeAssocElement,
            OjbcNamespaceContext.NS_NC_30, "Activity");
    XmlUtils.addAttribute(activityDetentionElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", detentionId);

    Element activityArrestElement = XmlUtils.appendElement(activityChargeAssocElement,
            OjbcNamespaceContext.NS_NC_30, "Activity");
    XmlUtils.addAttribute(activityArrestElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", arrestId);

    Element activityChargeElement = XmlUtils.appendElement(activityChargeAssocElement,
            OjbcNamespaceContext.NS_JXDM_51, "Charge");
    XmlUtils.addAttribute(activityChargeElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", chargeId);

    Element bailBondChargeAssocElement = XmlUtils.appendElement(custodyElement, OjbcNamespaceContext.NS_JXDM_51,
            "BailBondChargeAssociation");

    Element bailBondRefElement = XmlUtils.appendElement(bailBondChargeAssocElement,
            OjbcNamespaceContext.NS_JXDM_51, "BailBond");
    XmlUtils.addAttribute(bailBondRefElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", bailBondId);

    Element bailBondChargeRefElement = XmlUtils.appendElement(bailBondChargeAssocElement,
            OjbcNamespaceContext.NS_JXDM_51, "Charge");
    XmlUtils.addAttribute(bailBondChargeRefElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", chargeId);

    Element sourceSysNameTxtElement = XmlUtils.appendElement(rootCustodyResultsElement,
            OjbcNamespaceContext.NS_CUSTODY_QUERY_RESULTS_EXT, "SourceSystemNameText");
    sourceSysNameTxtElement.setTextContent("Custody");

    Element queryResultCatTxtElement = XmlUtils.appendElement(rootCustodyResultsElement,
            OjbcNamespaceContext.NS_CUSTODY_QUERY_RESULTS_EXT, "QueryResultCategoryText");
    queryResultCatTxtElement.setTextContent("Custody Detail");

    Element infoOwningOrgElement = XmlUtils.appendElement(rootCustodyResultsElement,
            OjbcNamespaceContext.NS_CUSTODY_QUERY_RESULTS_EXT, "InformationOwningOrganization");

    List<String> orgBranchNameList = Arrays.asList("Police", "Fire Department", "Public Safety", "EMT");
    int branchNameIndex = RANDOM.nextInt(orgBranchNameList.size());
    String sBranchName = orgBranchNameList.get(branchNameIndex);

    Element orgBranchNameElement = XmlUtils.appendElement(infoOwningOrgElement, OjbcNamespaceContext.NS_NC_30,
            "OrganizationBranchName");

    orgBranchNameElement.setTextContent(sBranchName);

    Element infoOwnOrgElement = XmlUtils.appendElement(infoOwningOrgElement, OjbcNamespaceContext.NS_NC_30,
            "OrganizationName");

    List<String> orgNameList = Arrays.asList("FLPD", "RIPD", "HIPD", "MEPD");

    int orgNameIndex = RANDOM.nextInt(orgNameList.size());

    String sOrgSample = orgNameList.get(orgNameIndex);

    infoOwnOrgElement.setTextContent(sOrgSample);

    Element metadataElement = XmlUtils.appendElement(rootCustodyResultsElement, OjbcNamespaceContext.NS_NC_30,
            "Metadata");
    Element lastUpdatedDateElement = XmlUtils.appendElement(metadataElement, OjbcNamespaceContext.NS_NC_30,
            "LastUpdatedDate");
    Element lastUpdatedDateValElement = XmlUtils.appendElement(lastUpdatedDateElement,
            OjbcNamespaceContext.NS_NC_30, "Date");
    lastUpdatedDateValElement.setTextContent(CURRENT_DATE);

    OjbcNamespaceContext ojbcNamespaceContext = new OjbcNamespaceContext();

    ojbcNamespaceContext.populateRootNamespaceDeclarations(rootCustodyResultsElement);

    return rCustodyDetailDoc;
}

From source file:org.ojbc.bundles.adapters.staticmock.samplegen.VehicleCrashSampleGenerator.java

private Document buildVehicleCrashDetailDoc(PersonElementWrapper iGeneratedPerson)
        throws ParserConfigurationException, IOException {

    PersonElementWrapper randomPerson2 = getRandomIdentity(null);

    Document rVehicleCrashDetailDoc = getNewDocument();

    Element rootVehicCrashElement = rVehicleCrashDetailDoc.createElementNS(
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXCH_DOC, "VehicleCrashQueryResults");
    rootVehicCrashElement.setPrefix(OjbcNamespaceContext.NS_PREFIX_VEHICLE_CRASH_QUERY_RESULT_EXCH_DOC);

    rVehicleCrashDetailDoc.appendChild(rootVehicCrashElement);

    Element vehicleCrashReportElement = XmlUtils.appendElement(rootVehicCrashElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "VehicleCrashReport");

    Element docCreateDateElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_NC_30, "DocumentCreationDate");

    Element docCreateDateValElement = XmlUtils.appendElement(docCreateDateElement,
            OjbcNamespaceContext.NS_NC_30, "Date");

    docCreateDateValElement.setTextContent(CURRENT_DATE);

    Element docIdElement = XmlUtils.appendElement(vehicleCrashReportElement, OjbcNamespaceContext.NS_NC_30,
            "DocumentIdentification");

    Element docIdValElement = XmlUtils.appendElement(docIdElement, OjbcNamespaceContext.NS_NC_30,
            "IdentificationID");

    String sampleDocId = RandomStringUtils.randomNumeric(9);
    docIdValElement.setTextContent(sampleDocId);

    Element docApprovedDateElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "DocumentApprovedDate");

    Element docApprovedDateValElement = XmlUtils.appendElement(docApprovedDateElement,
            OjbcNamespaceContext.NS_NC_30, "Date");
    docApprovedDateValElement.setTextContent(CURRENT_DATE);

    Element crashElement = XmlUtils.appendElement(vehicleCrashReportElement, OjbcNamespaceContext.NS_JXDM_51,
            "Crash");

    XmlUtils.addAttribute(crashElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", "Crash_01");

    Element activityDateElement = XmlUtils.appendElement(crashElement, OjbcNamespaceContext.NS_NC_30,
            "ActivityDate");

    Element dateTimeElement = XmlUtils.appendElement(activityDateElement, OjbcNamespaceContext.NS_NC_30,
            "DateTime");
    dateTimeElement.setTextContent(CURRENT_DATE);

    Element activityAugmentElement = XmlUtils.appendElement(crashElement, OjbcNamespaceContext.NS_JXDM_51,
            "ActivityAugmentation");

    Element narrativeElement = XmlUtils.appendElement(activityAugmentElement, OjbcNamespaceContext.NS_JXDM_51,
            "Narrative");

    Element narrativeCommentTxtElement = XmlUtils.appendElement(narrativeElement, OjbcNamespaceContext.NS_NC_30,
            "CommentText");

    List<String> sampleNarrativeList = Arrays.asList("Pileup", "Rush Hour", "Car hit a truck");

    String sampleNarrative = (String) generateRandomValueFromList(sampleNarrativeList);

    narrativeCommentTxtElement.setTextContent(sampleNarrative);

    Element incidentAugmentElement = XmlUtils.appendElement(crashElement, OjbcNamespaceContext.NS_JXDM_51,
            "IncidentAugmentation");

    Element incidentDamagedItemElement = XmlUtils.appendElement(incidentAugmentElement,
            OjbcNamespaceContext.NS_JXDM_51, "IncidentDamagedItem");

    Element itemDescTxtElement = XmlUtils.appendElement(incidentDamagedItemElement,
            OjbcNamespaceContext.NS_NC_30, "ItemDescriptionText");

    List<String> sampleDamagedItemList = Arrays.asList("Ferrari", "School Bus", "Hummer", "Lamborghini",
            "Camaro");

    String sampleDamagedItem = (String) generateRandomValueFromList(sampleDamagedItemList);

    itemDescTxtElement.setTextContent(sampleDamagedItem);

    Element itemOwnerElement = XmlUtils.appendElement(incidentDamagedItemElement, OjbcNamespaceContext.NS_NC_30,
            "ItemOwner");

    Element itemOwnerEntOrgElement = XmlUtils.appendElement(itemOwnerElement, OjbcNamespaceContext.NS_NC_30,
            "EntityOrganization");

    XmlUtils.addAttribute(itemOwnerEntOrgElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref",
            "Property_Owner_01");

    Element entityPersonElement = XmlUtils.appendElement(itemOwnerEntOrgElement, OjbcNamespaceContext.NS_NC_30,
            "EntityPerson");

    XmlUtils.addAttribute(entityPersonElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref",
            "Property_Owner_02");

    Element crashCodesElement = XmlUtils.appendElement(incidentDamagedItemElement,
            OjbcNamespaceContext.NS_ME_VEHICLE_CRASH_CODES, "PropertyCategoryCode");

    List<String> sampleCrashCodeList = Arrays.asList("SB", "CA", "FER", "LMB");

    String sampleCrashCode = (String) generateRandomValueFromList(sampleCrashCodeList);

    crashCodesElement.setTextContent(sampleCrashCode);

    Element incidentReportingOfficialElement = XmlUtils.appendElement(incidentAugmentElement,
            OjbcNamespaceContext.NS_JXDM_51, "IncidentReportingOfficial");

    Element roleOfPersonElement = XmlUtils.appendElement(incidentReportingOfficialElement,
            OjbcNamespaceContext.NS_NC_30, "RoleOfPerson");

    XmlUtils.addAttribute(roleOfPersonElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref",
            "Reporting_Official_01");

    Element badgeIdElement = XmlUtils.appendElement(incidentReportingOfficialElement,
            OjbcNamespaceContext.NS_JXDM_51, "EnforcementOfficialBadgeIdentification");

    Element badgeIdValElement = XmlUtils.appendElement(badgeIdElement, OjbcNamespaceContext.NS_NC_30,
            "IdentificationID");

    String sampleBadgeId = RandomStringUtils.randomNumeric(8);

    badgeIdValElement.setTextContent(sampleBadgeId);

    Element incidentWitnessElement = XmlUtils.appendElement(incidentAugmentElement,
            OjbcNamespaceContext.NS_JXDM_51, "IncidentWitness");

    Element witnessRolePersonElement = XmlUtils.appendElement(incidentWitnessElement,
            OjbcNamespaceContext.NS_NC_30, "RoleOfPerson");

    XmlUtils.addAttribute(witnessRolePersonElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", "Witness_01");

    Element crashInfoSourceElement = XmlUtils.appendElement(crashElement, OjbcNamespaceContext.NS_JXDM_51,
            "CrashInformationSource");

    Element orgORIIdElement = XmlUtils.appendElement(crashInfoSourceElement, OjbcNamespaceContext.NS_JXDM_51,
            "OrganizationORIIdentification");

    Element orgOriIdValElement = XmlUtils.appendElement(orgORIIdElement, OjbcNamespaceContext.NS_NC_30,
            "IdentificationID");

    String sampleOriId = RandomStringUtils.randomNumeric(8);

    orgOriIdValElement.setTextContent(sampleOriId);

    Element crashWorkZoneElement = XmlUtils.appendElement(crashElement, OjbcNamespaceContext.NS_JXDM_51,
            "CrashWorkZone");

    Element workersPresentElement = XmlUtils.appendElement(crashWorkZoneElement,
            OjbcNamespaceContext.NS_JXDM_51, "WorkZoneWorkersPresenceIndicationCode");

    workersPresentElement.setTextContent(getRandomBooleanString());

    Element copsAtWorkZoneCodeElement = XmlUtils.appendElement(crashWorkZoneElement,
            OjbcNamespaceContext.NS_ME_VEHICLE_CRASH_CODES, "LawEnforcementPresentAtWorkZoneCode");

    copsAtWorkZoneCodeElement.setTextContent(getRandomBooleanString());

    Element nearWorkZoneElement = XmlUtils.appendElement(crashWorkZoneElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "NearWorkZoneIndicator");

    nearWorkZoneElement.setTextContent(getRandomBooleanString());

    Element workZoneWorkersPresentIndicator = XmlUtils.appendElement(crashWorkZoneElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "WorkZoneWorkersPresentIndicator");

    workZoneWorkersPresentIndicator.setTextContent(getRandomBooleanString());

    Element crashVehicleElement = XmlUtils.appendElement(crashElement, OjbcNamespaceContext.NS_JXDM_51,
            "CrashVehicle");

    Element roleOfItemElement = XmlUtils.appendElement(crashVehicleElement, OjbcNamespaceContext.NS_NC_30,
            "RoleOfItem");

    XmlUtils.addAttribute(roleOfItemElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", "Vehicle_01");

    Element trafficDeviceWorksElement = XmlUtils.appendElement(crashVehicleElement,
            OjbcNamespaceContext.NS_JXDM_51, "VehicleTrafficControlDeviceOperationalIndicator");

    trafficDeviceWorksElement.setTextContent(getRandomBooleanString());

    Element crashVehicleSpeedElement = XmlUtils.appendElement(crashVehicleElement,
            OjbcNamespaceContext.NS_JXDM_51, "CrashVehicleLegalSpeedRateMeasure");

    Element vehicleSpeedValElement = XmlUtils.appendElement(crashVehicleSpeedElement,
            OjbcNamespaceContext.NS_NC_30, "MeasureValueText");

    String sampleSpeed = RandomStringUtils.randomNumeric(3);

    vehicleSpeedValElement.setTextContent(sampleSpeed);

    Element crashDriverElement = XmlUtils.appendElement(crashVehicleElement, OjbcNamespaceContext.NS_JXDM_51,
            "CrashDriver");

    Element crashDriverRoleOfPersonElement = XmlUtils.appendElement(crashDriverElement,
            OjbcNamespaceContext.NS_NC_30, "RoleOfPerson");

    XmlUtils.addAttribute(crashDriverRoleOfPersonElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref",
            "Driver_01");

    Element driverLicenseElement = XmlUtils.appendElement(crashDriverElement, OjbcNamespaceContext.NS_JXDM_51,
            "DriverLicense");

    XmlUtils.addAttribute(driverLicenseElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref",
            "Driver_License_01");

    Element driverCatCodeElement = XmlUtils.appendElement(crashDriverElement,
            OjbcNamespaceContext.NS_ME_VEHICLE_CRASH_CODES, "DriverCategoryCode");

    String sampleDriverCatCode = RandomStringUtils.randomAlphabetic(2);

    driverCatCodeElement.setTextContent(sampleDriverCatCode);

    Element alcoholTestCatCodeElement = XmlUtils.appendElement(crashDriverElement,
            OjbcNamespaceContext.NS_ME_VEHICLE_CRASH_CODES, "AlcoholTestCategoryCode");

    String sampleAlcoholCode = RandomStringUtils.randomAlphabetic(2);

    alcoholTestCatCodeElement.setTextContent(sampleAlcoholCode);

    Element drugTestCatCodeElement = XmlUtils.appendElement(crashDriverElement,
            OjbcNamespaceContext.NS_ME_VEHICLE_CRASH_CODES, "DrugTestCategoryCode");

    String sampleDrugTestCode = RandomStringUtils.randomNumeric(1);

    drugTestCatCodeElement.setTextContent(sampleDrugTestCode);

    Element drugTestResultCodeElement = XmlUtils.appendElement(crashDriverElement,
            OjbcNamespaceContext.NS_ME_VEHICLE_CRASH_CODES, "DrugTestResultCode");

    drugTestResultCodeElement.setTextContent(getRandomBooleanString());

    Element alcoholTestResultsPendingElement = XmlUtils.appendElement(crashDriverElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "AlcoholTestResultsPendingtIndicator");

    alcoholTestResultsPendingElement.setTextContent(getRandomBooleanString());

    Element crashVehicleOccupantElement = XmlUtils.appendElement(crashVehicleElement,
            OjbcNamespaceContext.NS_JXDM_51, "CrashVehicleOccupant");

    Element driverRoleOfPersonElement = XmlUtils.appendElement(crashVehicleOccupantElement,
            OjbcNamespaceContext.NS_NC_30, "RoleOfPerson");
    XmlUtils.addAttribute(driverRoleOfPersonElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", "Driver_01");

    Element occupantRoleOfPersonElement = XmlUtils.appendElement(crashVehicleOccupantElement,
            OjbcNamespaceContext.NS_NC_30, "RoleOfPerson");
    XmlUtils.addAttribute(occupantRoleOfPersonElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref",
            "Occupant_01");

    Element vehicleOwnerRoleOfPersonElement = XmlUtils.appendElement(crashVehicleOccupantElement,
            OjbcNamespaceContext.NS_NC_30, "RoleOfPerson");
    XmlUtils.addAttribute(vehicleOwnerRoleOfPersonElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref",
            "Vehicle_Owner_01");

    Element hazmatElement = XmlUtils.appendElement(crashVehicleElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "HazmatPlacardIndicator");
    hazmatElement.setTextContent(getRandomBooleanString());

    Element carDirectionElement = XmlUtils.appendElement(crashVehicleElement,
            OjbcNamespaceContext.NS_ME_VEHICLE_CRASH_CODES, "VehicleTravelDirectionCode");

    List<String> sampleDirectionList = Arrays.asList("North", "South", "East", "West");

    String sampleDirection = (String) generateRandomValueFromList(sampleDirectionList);

    carDirectionElement.setTextContent(sampleDirection);

    Element carWeightElement = XmlUtils.appendElement(crashVehicleElement,
            OjbcNamespaceContext.NS_ME_VEHICLE_CRASH_CODES, "GrossVehicleWeightRatingCode");

    String sampleWeight = RandomStringUtils.randomNumeric(4);

    carWeightElement.setTextContent(sampleWeight);

    Element damageElement = XmlUtils.appendElement(crashVehicleElement,
            OjbcNamespaceContext.NS_ME_VEHICLE_CRASH_CODES, "ExtentOfDamageCode");

    List<String> sampleDamageList = Arrays.asList("Very Bad", "Really Bad", "Light", "Totaled", "$500.75",
            "$6800.99");

    String sampleDamage = (String) generateRandomValueFromList(sampleDamageList);

    damageElement.setTextContent(sampleDamage);

    Element speedLimitElement = XmlUtils.appendElement(crashVehicleElement,
            OjbcNamespaceContext.NS_ME_VEHICLE_CRASH_CODES, "PostedSpeedLimitCode");

    String sampleSpeedLimit = RandomStringUtils.randomNumeric(2);

    speedLimitElement.setTextContent(sampleSpeedLimit);

    Element schoolBusElement = XmlUtils.appendElement(crashVehicleElement,
            OjbcNamespaceContext.NS_ME_VEHICLE_CRASH_CODES, "SchoolBusRelatedCode");
    schoolBusElement.setTextContent(getRandomBooleanString());

    Element damageOverThreshElement = XmlUtils.appendElement(crashVehicleElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "TotalDamageOverThresholdtIndicator");

    damageOverThreshElement.setTextContent(getRandomBooleanString());

    Element nineSeatsElement = XmlUtils.appendElement(crashVehicleElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "VehicleNineOrMoreSeatstIndicator");

    nineSeatsElement.setTextContent(getRandomBooleanString());

    Element exemptVehicleElement = XmlUtils.appendElement(crashVehicleElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "ExemptVehicleIndicator");

    exemptVehicleElement.setTextContent(getRandomBooleanString());

    Element locationElement = XmlUtils.appendElement(crashElement, OjbcNamespaceContext.NS_NC_30, "Location");
    XmlUtils.addAttribute(locationElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", "Incident_Loc_01");

    Element addressElement = XmlUtils.appendElement(locationElement, OjbcNamespaceContext.NS_NC_30, "Address");
    Element cityElement = XmlUtils.appendElement(addressElement, OjbcNamespaceContext.NS_NC_30,
            "LocationCityName");

    String sampleCity = iGeneratedPerson.city;

    cityElement.setTextContent(sampleCity);

    Element hwyElement = XmlUtils.appendElement(locationElement, OjbcNamespaceContext.NS_NC_30,
            "AddressHighway");
    Element hwyFullTxtElement = XmlUtils.appendElement(hwyElement, OjbcNamespaceContext.NS_NC_30,
            "HighwayFullText");

    hwyFullTxtElement.setTextContent(iGeneratedPerson.streetAddress);

    Element loc2DElement = XmlUtils.appendElement(locationElement, OjbcNamespaceContext.NS_NC_30,
            "Location2DGeospatialCoordinate");

    Element latElement = XmlUtils.appendElement(loc2DElement, OjbcNamespaceContext.NS_NC_30,
            "GeographicCoordinateLatitude");

    Element latValElement = XmlUtils.appendElement(latElement, OjbcNamespaceContext.NS_NC_30,
            "LatitudeDegreeValue");

    String sampleLatitude = RandomStringUtils.randomNumeric(2);

    latValElement.setTextContent(sampleLatitude);

    Element longitudeElement = XmlUtils.appendElement(loc2DElement, OjbcNamespaceContext.NS_NC_30,
            "GeographicCoordinateLongitude");

    Element longValElement = XmlUtils.appendElement(longitudeElement, OjbcNamespaceContext.NS_NC_30,
            "LongitudeDegreeValue");

    String sampleLongitude = RandomStringUtils.randomNumeric(2);

    longValElement.setTextContent(sampleLongitude);

    Element intersectionElement = XmlUtils.appendElement(locationElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "NearestIntersectingStreetFullText");

    String sampleIntersection = randomPerson2.streetAddress;

    intersectionElement.setTextContent(sampleIntersection);

    Element distanceToIntersectionElement = XmlUtils.appendElement(locationElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT,
            "DistanceFromNearestIntersectionNumberText");

    String sampleDistance = RandomStringUtils.randomNumeric(2);

    distanceToIntersectionElement.setTextContent(sampleDistance);

    Element directionFromIntersectionElement = XmlUtils.appendElement(locationElement,
            OjbcNamespaceContext.NS_ME_VEHICLE_CRASH_CODES, "DirectionFromNearestIntersectionCode");

    String sampleIntersectionDirection = (String) generateRandomValueFromList(sampleDirectionList);

    directionFromIntersectionElement.setTextContent(sampleIntersectionDirection);

    Element intersectDistUnitsElement = XmlUtils.appendElement(locationElement,
            OjbcNamespaceContext.NS_ME_VEHICLE_CRASH_CODES, "DistanceFromNearestIntersectionNumberUnitCode");

    List<String> sampleUnitsForDistanceList = Arrays.asList("km", "mi", "yd", "me", "cm");

    String sampleDistanceUnit = (String) generateRandomValueFromList(sampleUnitsForDistanceList);

    intersectDistUnitsElement.setTextContent(sampleDistanceUnit);

    Element atSceneDateElement = XmlUtils.appendElement(crashElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "AtSceneDateTime");

    Element atSceneDateValElement = XmlUtils.appendElement(atSceneDateElement, OjbcNamespaceContext.NS_NC_30,
            "DateTime");

    atSceneDateValElement.setTextContent(CURRENT_DATE);

    Element offRoadElement = XmlUtils.appendElement(crashElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "OffRoadIncidentIndicator");

    offRoadElement.setTextContent(getRandomBooleanString());

    Element emergVehicle = XmlUtils.appendElement(crashElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT,
            "EmergencyVehicleRespondingToSceneIndicator");

    emergVehicle.setTextContent(getRandomBooleanString());

    Element citationElement = XmlUtils.appendElement(vehicleCrashReportElement, OjbcNamespaceContext.NS_JXDM_51,
            "Citation");
    XmlUtils.addAttribute(citationElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", "Citation_01");

    Element activityIdElement = XmlUtils.appendElement(citationElement, OjbcNamespaceContext.NS_NC_30,
            "ActivityIdentification");

    Element activityIdValElement = XmlUtils.appendElement(activityIdElement, OjbcNamespaceContext.NS_NC_30,
            "IdentificationID");

    String sampleCitationId = RandomStringUtils.randomNumeric(8);

    activityIdValElement.setTextContent(sampleCitationId);

    Element citationNumPendingElement = XmlUtils.appendElement(citationElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "CitationNumberPendingIndicator");

    citationNumPendingElement.setTextContent(getRandomBooleanString());

    Element firstVilationDescTxtElement = XmlUtils.appendElement(citationElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "FirstViolationDescriptionText");

    List<String> sampleCitationList = Arrays.asList("Speeding", "J Walking", "No Seatbelt", "Loud Music",
            "Ran Stop Sign", "Reckless Driving");

    String sampleCitation = (String) generateRandomValueFromList(sampleCitationList);

    firstVilationDescTxtElement.setTextContent(sampleCitation);

    Element secondViolationElement = XmlUtils.appendElement(citationElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "SecondViolationDescriptionText");

    String sampleCitation2 = (String) generateRandomValueFromList(sampleCitationList);

    secondViolationElement.setTextContent(sampleCitation2);

    PersonElementWrapper reportOfficalRandomPerson = getRandomIdentity(null);

    Element reportOfficialElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_NC_30, "Person");
    XmlUtils.addAttribute(reportOfficialElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id",
            "Reporting_Official_01");

    Element reportOfficialNameElement = XmlUtils.appendElement(reportOfficialElement,
            OjbcNamespaceContext.NS_NC_30, "PersonName");

    Element reportOfficialFullName = XmlUtils.appendElement(reportOfficialNameElement,
            OjbcNamespaceContext.NS_NC_30, "PersonFullName");

    String sampleReportOfficialFullName = reportOfficalRandomPerson.firstName + " "
            + reportOfficalRandomPerson.lastName;

    reportOfficialFullName.setTextContent(sampleReportOfficialFullName);

    Element witnessPersonElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_NC_30, "Person");
    XmlUtils.addAttribute(witnessPersonElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", "Witness_01");

    Element witnessPersonNameElement = XmlUtils.appendElement(witnessPersonElement,
            OjbcNamespaceContext.NS_NC_30, "PersonName");

    Element witnessGivenName = XmlUtils.appendElement(witnessPersonNameElement, OjbcNamespaceContext.NS_NC_30,
            "PersonGivenName");

    witnessGivenName.setTextContent(reportOfficalRandomPerson.firstName);

    Element witnessMiddleName = XmlUtils.appendElement(witnessPersonNameElement, OjbcNamespaceContext.NS_NC_30,
            "PersonMiddleName");

    witnessMiddleName.setTextContent(reportOfficalRandomPerson.middleName);

    Element witnessSurName = XmlUtils.appendElement(witnessPersonNameElement, OjbcNamespaceContext.NS_NC_30,
            "PersonSurName");

    witnessSurName.setTextContent(reportOfficalRandomPerson.lastName);

    PersonElementWrapper infoApprovPerson = getRandomIdentity(null);

    Element infoApproverPersonElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_NC_30, "Person");

    XmlUtils.addAttribute(infoApproverPersonElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id",
            "Information_Approver_01");

    Element infoApproverPersonNameElement = XmlUtils.appendElement(infoApproverPersonElement,
            OjbcNamespaceContext.NS_NC_30, "PersonName");

    Element personFullNameElement = XmlUtils.appendElement(infoApproverPersonNameElement,
            OjbcNamespaceContext.NS_NC_30, "PersonFullName");

    String infoApprovFullName = infoApprovPerson.firstName + " " + infoApprovPerson.lastName;

    personFullNameElement.setTextContent(infoApprovFullName);

    PersonElementWrapper sampleDriverPerson = getRandomIdentity(null);

    Element driverPersonElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_NC_30, "Person");
    XmlUtils.addAttribute(driverPersonElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", "Driver_01");

    Element driverDobElement = XmlUtils.appendElement(driverPersonElement, OjbcNamespaceContext.NS_NC_30,
            "PersonBirthDate");

    Element driverDobValElement = XmlUtils.appendElement(driverDobElement, OjbcNamespaceContext.NS_NC_30,
            "Date");

    driverDobValElement.setTextContent(sampleDriverPerson.birthday);

    Element driverNameElement = XmlUtils.appendElement(driverPersonElement, OjbcNamespaceContext.NS_NC_30,
            "PersonName");

    Element driverGivenNameElement = XmlUtils.appendElement(driverNameElement, OjbcNamespaceContext.NS_NC_30,
            "PersonGivenName");

    String sampleDriverFirstName = sampleDriverPerson.firstName;

    driverGivenNameElement.setTextContent(sampleDriverFirstName);

    Element driverMiddleName = XmlUtils.appendElement(driverNameElement, OjbcNamespaceContext.NS_NC_30,
            "PersonMiddleName");

    String sampleDriverMiddleName = sampleDriverPerson.middleName;

    driverMiddleName.setTextContent(sampleDriverMiddleName);

    Element driverSurNameElement = XmlUtils.appendElement(driverNameElement, OjbcNamespaceContext.NS_NC_30,
            "PersonSurName");

    String sampleDriverLastName = sampleDriverPerson.lastName;

    driverSurNameElement.setTextContent(sampleDriverLastName);

    Element driverSexCodeElement = XmlUtils.appendElement(driverPersonElement, OjbcNamespaceContext.NS_JXDM_51,
            "PersonSexCode");

    String sampleDriverSexCode = sampleDriverPerson.sex;

    driverSexCodeElement.setTextContent(sampleDriverSexCode);

    Element driverPersonCatCodeElement = XmlUtils.appendElement(driverPersonElement,
            OjbcNamespaceContext.NS_ME_VEHICLE_CRASH_CODES, "PersonCategoryCode");

    String vehicleCrashCode = RandomStringUtils.randomAlphabetic(2);

    driverPersonCatCodeElement.setTextContent(vehicleCrashCode);

    PersonElementWrapper sampleVehicleOwner = getRandomIdentity(null);

    Element vehicleOwnerElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_NC_30, "Person");

    XmlUtils.addAttribute(vehicleOwnerElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", "Vehicle_Owner_01");

    Element vehicleOwnerDobElement = XmlUtils.appendElement(vehicleOwnerElement, OjbcNamespaceContext.NS_NC_30,
            "PersonBirthDate");

    Element vehicleOwnerDobValElement = XmlUtils.appendElement(vehicleOwnerDobElement,
            OjbcNamespaceContext.NS_NC_30, "Date");

    vehicleOwnerDobValElement.setTextContent(sampleVehicleOwner.birthday);

    Element vehicleOwnerNameElement = XmlUtils.appendElement(vehicleOwnerElement, OjbcNamespaceContext.NS_NC_30,
            "PersonName");

    Element vehicleOwnerGivenNameElement = XmlUtils.appendElement(vehicleOwnerNameElement,
            OjbcNamespaceContext.NS_NC_30, "PersonGivenName");
    vehicleOwnerGivenNameElement.setTextContent(sampleVehicleOwner.firstName);

    Element vehicleOwnerMiddleName = XmlUtils.appendElement(vehicleOwnerNameElement,
            OjbcNamespaceContext.NS_NC_30, "PersonMiddleName");
    vehicleOwnerMiddleName.setTextContent(sampleVehicleOwner.middleName);

    Element vehicleOwnerSurNameElement = XmlUtils.appendElement(vehicleOwnerNameElement,
            OjbcNamespaceContext.NS_NC_30, "PersonSurName");
    vehicleOwnerSurNameElement.setTextContent(sampleVehicleOwner.lastName);

    Element vehicleOwnerSexCodeElement = XmlUtils.appendElement(vehicleOwnerElement,
            OjbcNamespaceContext.NS_JXDM_51, "PersonSexCode");
    vehicleOwnerSexCodeElement.setTextContent(sampleVehicleOwner.sex);

    Element vehicleOwnerCatCodeElement = XmlUtils.appendElement(vehicleOwnerElement,
            OjbcNamespaceContext.NS_ME_VEHICLE_CRASH_CODES, "PersonCategoryCode");

    String sampleVehicleOwnerCatCode = RandomStringUtils.randomAlphanumeric(2);

    vehicleOwnerCatCodeElement.setTextContent(sampleVehicleOwnerCatCode);

    Element propOwner1EntOrgElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_NC_30, "EntityOrganization");

    XmlUtils.addAttribute(propOwner1EntOrgElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id",
            "Property_Owner_01");

    Element propOwner1EntOrgNameElement = XmlUtils.appendElement(propOwner1EntOrgElement,
            OjbcNamespaceContext.NS_NC_30, "OrganizationName");

    propOwner1EntOrgNameElement.setTextContent(sampleVehicleOwner.company);

    PersonElementWrapper samplePropertyOwner = getRandomIdentity(null);

    Element propOwner2EntPersonElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_NC_30, "EntityPerson");

    XmlUtils.addAttribute(propOwner2EntPersonElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id",
            "Property_Owner_02");

    Element propOwnerEntPersonName = XmlUtils.appendElement(propOwner2EntPersonElement,
            OjbcNamespaceContext.NS_NC_30, "PersonName");

    Element propOwnerEntFullName = XmlUtils.appendElement(propOwnerEntPersonName, OjbcNamespaceContext.NS_NC_30,
            "PersonFullName");

    String samplePropOwnerFullName = samplePropertyOwner.firstName + "" + samplePropertyOwner.lastName;

    propOwnerEntFullName.setTextContent(samplePropOwnerFullName);

    Element occupant1EntPersonElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_NC_30, "EntityPerson");

    XmlUtils.addAttribute(occupant1EntPersonElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id",
            "Occupant_01");

    Element occupantDobElement = XmlUtils.appendElement(occupant1EntPersonElement,
            OjbcNamespaceContext.NS_NC_30, "PersonBirthDate");

    Element occupantDobValElement = XmlUtils.appendElement(occupantDobElement, OjbcNamespaceContext.NS_NC_30,
            "Date");

    occupantDobValElement.setTextContent(samplePropertyOwner.birthday);

    Element occupantPersonNameElement = XmlUtils.appendElement(occupant1EntPersonElement,
            OjbcNamespaceContext.NS_NC_30, "PersonName");

    Element occupantGivenNameElement = XmlUtils.appendElement(occupantPersonNameElement,
            OjbcNamespaceContext.NS_NC_30, "PersonGivenName");

    occupantGivenNameElement.setTextContent(samplePropertyOwner.firstName);

    Element occupantMiddleName = XmlUtils.appendElement(occupantPersonNameElement,
            OjbcNamespaceContext.NS_NC_30, "PersonMiddleName");

    occupantMiddleName.setTextContent(samplePropertyOwner.middleName);

    Element occupantSurName = XmlUtils.appendElement(occupantPersonNameElement, OjbcNamespaceContext.NS_NC_30,
            "PersonSurName");
    occupantSurName.setTextContent(samplePropertyOwner.lastName);

    Element occupantSexCodeElement = XmlUtils.appendElement(occupantPersonNameElement,
            OjbcNamespaceContext.NS_JXDM_51, "PersonSexCode");
    occupantSexCodeElement.setTextContent(samplePropertyOwner.sex);

    Element occupantCatCodeElement = XmlUtils.appendElement(occupantPersonNameElement,
            OjbcNamespaceContext.NS_ME_VEHICLE_CRASH_CODES, "PersonCategoryCode");

    String sampleOccupantCatCode = RandomStringUtils.randomAlphanumeric(2);

    occupantCatCodeElement.setTextContent(sampleOccupantCatCode);

    PersonElementWrapper sampleDriver = getRandomIdentity(null);

    Element driverLocElement = XmlUtils.appendElement(vehicleCrashReportElement, OjbcNamespaceContext.NS_NC_30,
            "Location");

    XmlUtils.addAttribute(driverLocElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", "Driver_Loc_01");

    Element driverLocAddressElement = XmlUtils.appendElement(driverLocElement, OjbcNamespaceContext.NS_NC_30,
            "Address");

    Element driverLocStreetElement = XmlUtils.appendElement(driverLocAddressElement,
            OjbcNamespaceContext.NS_NC_30, "LocationStreet");

    Element driverLocStreetValElement = XmlUtils.appendElement(driverLocStreetElement,
            OjbcNamespaceContext.NS_NC_30, "StreetFullText");

    driverLocStreetValElement.setTextContent(sampleDriver.streetAddress);

    Element driverLocCityElement = XmlUtils.appendElement(driverLocAddressElement,
            OjbcNamespaceContext.NS_NC_30, "LocationCityName");
    driverLocCityElement.setTextContent(sampleDriver.city);

    Element driverLocStateElement = XmlUtils.appendElement(driverLocAddressElement,
            OjbcNamespaceContext.NS_JXDM_51, "LocationStateNCICLISCode");

    driverLocStateElement.setTextContent(sampleDriver.state);

    Element driverLocZipElement = XmlUtils.appendElement(driverLocAddressElement, OjbcNamespaceContext.NS_NC_30,
            "LocationPostalCode");

    driverLocZipElement.setTextContent(sampleDriver.zipCode);

    PersonElementWrapper sampleWitness = getRandomIdentity(null);

    Element witnessLocElement = XmlUtils.appendElement(vehicleCrashReportElement, OjbcNamespaceContext.NS_NC_30,
            "Location");

    XmlUtils.addAttribute(witnessLocElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", "Witness_Loc_01");

    Element witnessLocAddressElement = XmlUtils.appendElement(witnessLocElement, OjbcNamespaceContext.NS_NC_30,
            "Address");

    Element witnessLocStreetElement = XmlUtils.appendElement(witnessLocAddressElement,
            OjbcNamespaceContext.NS_NC_30, "LocationStreet");

    Element witnessLocStreetValElement = XmlUtils.appendElement(witnessLocStreetElement,
            OjbcNamespaceContext.NS_NC_30, "StreetFullText");

    witnessLocStreetValElement.setTextContent(sampleWitness.streetAddress);

    Element witnessLocCityElement = XmlUtils.appendElement(witnessLocAddressElement,
            OjbcNamespaceContext.NS_NC_30, "LocationCityName");

    witnessLocCityElement.setTextContent(sampleWitness.city);

    Element witnessLocStateElement = XmlUtils.appendElement(witnessLocAddressElement,
            OjbcNamespaceContext.NS_JXDM_51, "LocationStateNCICLISCode");

    witnessLocStateElement.setTextContent(sampleWitness.state);

    Element witnessLocZipElement = XmlUtils.appendElement(witnessLocAddressElement,
            OjbcNamespaceContext.NS_NC_30, "LocationPostalCode");

    witnessLocZipElement.setTextContent(sampleWitness.zipCode);

    PersonElementWrapper propOwnerSample = getRandomIdentity(null);

    Element propOwnerLocElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_NC_30, "Location");

    XmlUtils.addAttribute(propOwnerLocElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id",
            "Property_Owner_Loc_01");

    Element propOwnerLocAddressElement = XmlUtils.appendElement(propOwnerLocElement,
            OjbcNamespaceContext.NS_NC_30, "Address");

    Element propOwnerLocStreetElement = XmlUtils.appendElement(propOwnerLocAddressElement,
            OjbcNamespaceContext.NS_NC_30, "LocationStreet");

    Element propOwnerLocStreetValElement = XmlUtils.appendElement(propOwnerLocStreetElement,
            OjbcNamespaceContext.NS_NC_30, "StreetFullText");
    propOwnerLocStreetValElement.setTextContent(propOwnerSample.streetAddress);

    Element propOwnerLocCityElement = XmlUtils.appendElement(propOwnerLocAddressElement,
            OjbcNamespaceContext.NS_NC_30, "LocationCityName");
    propOwnerLocCityElement.setTextContent(propOwnerSample.city);

    Element propOwnerLocStateElement = XmlUtils.appendElement(propOwnerLocAddressElement,
            OjbcNamespaceContext.NS_JXDM_51, "LocationStateNCICLISCode");
    propOwnerLocStateElement.setTextContent(propOwnerSample.state);

    Element propOwnerLocZipElement = XmlUtils.appendElement(propOwnerLocAddressElement,
            OjbcNamespaceContext.NS_NC_30, "LocationPostalCode");
    propOwnerLocZipElement.setTextContent(propOwnerSample.zipCode);

    PersonElementWrapper vehicOwnerSample = getRandomIdentity(null);

    Element vehicleOwnerLocElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_NC_30, "Location");

    XmlUtils.addAttribute(vehicleOwnerLocElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id",
            "Vehicle_Owner_Loc_01");

    Element vehicleOwnerLocAddressElement = XmlUtils.appendElement(vehicleOwnerLocElement,
            OjbcNamespaceContext.NS_NC_30, "Address");

    Element vehicleOwnerLocStreetElement = XmlUtils.appendElement(vehicleOwnerLocAddressElement,
            OjbcNamespaceContext.NS_NC_30, "LocationStreet");

    Element vehicleOwnerLocStreetValElement = XmlUtils.appendElement(vehicleOwnerLocStreetElement,
            OjbcNamespaceContext.NS_NC_30, "StreetFullText");
    vehicleOwnerLocStreetValElement.setTextContent(vehicOwnerSample.addressStreetNumber);

    Element vehicleOwnerLocCityElement = XmlUtils.appendElement(vehicleOwnerLocAddressElement,
            OjbcNamespaceContext.NS_NC_30, "LocationCityName");
    vehicleOwnerLocCityElement.setTextContent(vehicOwnerSample.city);

    Element vehicleOwnerLocStateElement = XmlUtils.appendElement(vehicleOwnerLocAddressElement,
            OjbcNamespaceContext.NS_JXDM_51, "LocationStateNCICLISCode");
    vehicleOwnerLocStateElement.setTextContent(vehicOwnerSample.state);

    Element vehicleOwnerLocZipElement = XmlUtils.appendElement(vehicleOwnerLocAddressElement,
            OjbcNamespaceContext.NS_NC_30, "LocationPostalCode");
    vehicleOwnerLocZipElement.setTextContent(vehicOwnerSample.zipCode);

    Element vehicleElement = XmlUtils.appendElement(vehicleCrashReportElement, OjbcNamespaceContext.NS_NC_30,
            "Vehicle");

    XmlUtils.addAttribute(vehicleElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", "Vehicle_01");

    Element vehicleColorElement = XmlUtils.appendElement(vehicleElement, OjbcNamespaceContext.NS_JXDM_51,
            "ConveyanceColorPrimaryCode");

    List<String> sampleColorList = Arrays.asList("BLO", "BLK", "BLU", "RED", "PUR");

    String sampleColor = (String) generateRandomValueFromList(sampleColorList);

    vehicleColorElement.setTextContent(sampleColor);

    List<String> sampleYearList = Arrays.asList("1970", "1989", "1996", "2016");

    String sampleYear = (String) generateRandomValueFromList(sampleYearList);

    Element vehcicleYearElement = XmlUtils.appendElement(vehicleColorElement, OjbcNamespaceContext.NS_NC_30,
            "ItemModelYearDate");

    vehcicleYearElement.setTextContent(sampleYear);

    Element vehicleIdElement = XmlUtils.appendElement(vehicleElement, OjbcNamespaceContext.NS_NC_30,
            "VehicleIdentification");

    Element vehicleIdValElement = XmlUtils.appendElement(vehicleIdElement, OjbcNamespaceContext.NS_NC_30,
            "IdentificationID");

    String sampleVin = RandomStringUtils.randomAlphanumeric(10);

    vehicleIdValElement.setTextContent(sampleVin);

    Element vehicleIdJurisdictionElement = XmlUtils.appendElement(vehicleIdElement,
            OjbcNamespaceContext.NS_NC_30, "IdentificationJurisdiction");

    Element vehicleIdStateCodeElement = XmlUtils.appendElement(vehicleIdJurisdictionElement,
            OjbcNamespaceContext.NS_JXDM_51, "LocationStateNCICLISCode");

    vehicleIdStateCodeElement.setTextContent(vehicOwnerSample.state);

    Element vehicleMakeElement = XmlUtils.appendElement(vehicleElement, OjbcNamespaceContext.NS_JXDM_51,
            "VehicleMakeCode");

    List<String> sampleMakeList = Arrays.asList("Ford", "Chevy", "Dodge", "GM", "Kia");

    String sampleMake = (String) generateRandomValueFromList(sampleMakeList);

    vehicleMakeElement.setTextContent(sampleMake);

    Element vehicleUnitIdElement = XmlUtils.appendElement(vehicleElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "VehicleUnitIdentification");

    Element vehicleUnitIdValElement = XmlUtils.appendElement(vehicleUnitIdElement,
            OjbcNamespaceContext.NS_NC_30, "IdentificationID");

    String sampleVehicUnitId = RandomStringUtils.randomAlphanumeric(8);

    vehicleUnitIdValElement.setTextContent(sampleVehicUnitId);

    Element hitRunIndicatorElement = XmlUtils.appendElement(vehicleElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "HitRunIndicator");

    hitRunIndicatorElement.setTextContent(getRandomBooleanString());

    Element conveyRegElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_JXDM_51, "ConveyanceRegistration");

    XmlUtils.addAttribute(conveyRegElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id",
            "Conveyance_Registration_01");

    Element conveyRegIdElement = XmlUtils.appendElement(conveyRegElement, OjbcNamespaceContext.NS_JXDM_51,
            "ConveyanceRegistrationPlateIdentification");

    Element conveyRegIdValElement = XmlUtils.appendElement(conveyRegIdElement, OjbcNamespaceContext.NS_NC_30,
            "IdentificationID");

    String samplePlateId = RandomStringUtils.randomAlphanumeric(7);

    conveyRegIdValElement.setTextContent(samplePlateId);

    Element conveyIdRegJurisdictElement = XmlUtils.appendElement(conveyRegIdElement,
            OjbcNamespaceContext.NS_NC_30, "IdentificationJurisdiction");

    Element conveyIdRegStateCodeElement = XmlUtils.appendElement(conveyIdRegJurisdictElement,
            OjbcNamespaceContext.NS_JXDM_51, "LocationStateNCICLISCode");

    conveyIdRegStateCodeElement.setTextContent(sampleVehicleOwner.state);

    Element insuranceElement = XmlUtils.appendElement(vehicleCrashReportElement, OjbcNamespaceContext.NS_NC_30,
            "Insurance");

    XmlUtils.addAttribute(insuranceElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id", "Insurance_01");

    Element insPolicyIdElement = XmlUtils.appendElement(insuranceElement, OjbcNamespaceContext.NS_NC_30,
            "InsurancePolicyIdentification");

    Element insPolicyIdValElement = XmlUtils.appendElement(insPolicyIdElement, OjbcNamespaceContext.NS_NC_30,
            "IdentificationID");

    String insPolicyId = RandomStringUtils.randomAlphanumeric(10);

    insPolicyIdValElement.setTextContent(insPolicyId);

    Element insCarrierNameElement = XmlUtils.appendElement(insuranceElement, OjbcNamespaceContext.NS_NC_30,
            "InsuranceCarrierName");

    List<String> insCarrierList = Arrays.asList("Geico", "Allstate", "Progressive");

    String insCarrier = (String) generateRandomValueFromList(insCarrierList);

    insCarrierNameElement.setTextContent(insCarrier);

    Element noInsuranceElement = XmlUtils.appendElement(insuranceElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "NoInsuranceIndicator");

    noInsuranceElement.setTextContent(getRandomBooleanString());

    Element crashDriverLicElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_JXDM_51, "CrashDriverLicense");

    XmlUtils.addAttribute(crashDriverLicElement, OjbcNamespaceContext.NS_STRUCTURES_30, "id",
            "Driver_License_01");

    Element dlCardIdElement = XmlUtils.appendElement(crashDriverLicElement, OjbcNamespaceContext.NS_JXDM_51,
            "DriverLicenseCardIdentification");

    Element dlCardIdValueElement = XmlUtils.appendElement(dlCardIdElement, OjbcNamespaceContext.NS_NC_30,
            "IdentificationID");

    String dlId = RandomStringUtils.randomAlphanumeric(9);

    dlCardIdValueElement.setTextContent(dlId);

    Element dlJurisdictElement = XmlUtils.appendElement(dlCardIdElement, OjbcNamespaceContext.NS_NC_30,
            "IdentificationJurisdiction");

    Element dlStateElement = XmlUtils.appendElement(dlJurisdictElement, OjbcNamespaceContext.NS_JXDM_51,
            "LocationStateNCICLISCode");

    dlStateElement.setTextContent(getRandomIdentity(null).state);

    Element dlRestrictElement = XmlUtils.appendElement(crashDriverLicElement, OjbcNamespaceContext.NS_JXDM_51,
            "DriverLicenseRestriction");

    Element dlRestrictTxtElement = XmlUtils.appendElement(dlRestrictElement, OjbcNamespaceContext.NS_JXDM_51,
            "DrivingRestrictionText");

    List<String> dlRestrictList = Arrays.asList("Glasses", "Daylight", "Evening");

    String sampleRestriction = (String) generateRandomValueFromList(dlRestrictList);

    dlRestrictTxtElement.setTextContent(sampleRestriction);

    Element dlEndorsementElement = XmlUtils.appendElement(crashDriverLicElement,
            OjbcNamespaceContext.NS_JXDM_51, "DriverLicenseEndorsement");
    Element dlEndorsementTxtElement = XmlUtils.appendElement(dlEndorsementElement,
            OjbcNamespaceContext.NS_JXDM_51, "DriverLicenseEndorsementText");

    List<String> endorsementList = Arrays.asList("motorcycle", "trailor", "commercial");

    String sampleEndorsement = (String) generateRandomValueFromList(endorsementList);

    dlEndorsementTxtElement.setTextContent(sampleEndorsement);

    Element dlCatCodeElement = XmlUtils.appendElement(crashDriverLicElement,
            OjbcNamespaceContext.NS_ME_VEHICLE_CRASH_CODES, "DriverLicenseCategoryCode");

    List<String> dlCatList = Arrays.asList("Civil", "Military", "Racing");

    String sampleDlCatCode = (String) generateRandomValueFromList(dlCatList);

    dlCatCodeElement.setTextContent(sampleDlCatCode);

    Element dlClassCodeElement = XmlUtils.appendElement(crashDriverLicElement,
            OjbcNamespaceContext.NS_VEHICLE_CRASH_QUERY_RESULT_EXT, "DriverLicenseClassCodeText");

    String dlClass = RandomStringUtils.randomAlphabetic(1);

    dlClassCodeElement.setTextContent(dlClass);

    Element activityInfoApproverAssocElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_JXDM_51, "ActivityInformationApproverAssociation");

    Element aprovAsocActivElement = XmlUtils.appendElement(activityInfoApproverAssocElement,
            OjbcNamespaceContext.NS_NC_30, "Activity");
    XmlUtils.addAttribute(aprovAsocActivElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", "Crash_01");

    Element activInfoAprovAsocPersonElement = XmlUtils.appendElement(activityInfoApproverAssocElement,
            OjbcNamespaceContext.NS_NC_30, "Person");
    XmlUtils.addAttribute(activInfoAprovAsocPersonElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref",
            "Information_Approver_01");

    Element bloodAlcAssocElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_JXDM_51, "PersonBloodAlcoholContentAssociation");

    Element bloodTxtElement = XmlUtils.appendElement(bloodAlcAssocElement, OjbcNamespaceContext.NS_JXDM_51,
            "PersonBloodAlcoholContentNumberText");

    String sampleBloodContent = RandomStringUtils.randomNumeric(2);

    bloodTxtElement.setTextContent(sampleBloodContent);

    Element bloodActivityElement = XmlUtils.appendElement(bloodAlcAssocElement, OjbcNamespaceContext.NS_NC_30,
            "Activity");

    XmlUtils.addAttribute(bloodActivityElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", "Crash_01");

    Element bloodPersonElement = XmlUtils.appendElement(bloodAlcAssocElement, OjbcNamespaceContext.NS_NC_30,
            "Person");
    XmlUtils.addAttribute(bloodPersonElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", "Driver_01");

    Element itemInsAssocElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_NC_30, "ItemInsuranceAssociation");

    Element itemAssocInsElement = XmlUtils.appendElement(itemInsAssocElement, OjbcNamespaceContext.NS_NC_30,
            "Insurance");
    XmlUtils.addAttribute(itemAssocInsElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", "Insurance_01");

    Element insuranceItemElement = XmlUtils.appendElement(itemInsAssocElement, OjbcNamespaceContext.NS_NC_30,
            "Item");
    XmlUtils.addAttribute(insuranceItemElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", "Vehicle_01");

    Element personResAsocElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_NC_30, "PersonResidenceAssociation");

    Element prsnResAssocPrsnElement = XmlUtils.appendElement(personResAsocElement,
            OjbcNamespaceContext.NS_NC_30, "Person");
    XmlUtils.addAttribute(prsnResAssocPrsnElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", "Driver_01");

    Element prsnRestAsocLocElement = XmlUtils.appendElement(personResAsocElement, OjbcNamespaceContext.NS_NC_30,
            "Location");
    XmlUtils.addAttribute(prsnRestAsocLocElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref",
            "Driver_Loc_01");

    Element witnessAssocElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_NC_30, "PersonResidenceAssociation");

    Element witnessPersonResElement = XmlUtils.appendElement(witnessAssocElement, OjbcNamespaceContext.NS_NC_30,
            "Person");
    XmlUtils.addAttribute(witnessPersonResElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", "Witness_01");

    Element witnessPrsnResLocElement = XmlUtils.appendElement(witnessAssocElement,
            OjbcNamespaceContext.NS_NC_30, "nc:Location");
    XmlUtils.addAttribute(witnessPrsnResLocElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref",
            "Witness_Loc_01");

    Element propOwnerResAsocElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_NC_30, "PersonResidenceAssociation");

    Element propOwnerPersonElement = XmlUtils.appendElement(propOwnerResAsocElement,
            OjbcNamespaceContext.NS_NC_30, "Person");
    XmlUtils.addAttribute(propOwnerPersonElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref",
            "Property_Owner_01");

    Element propOwnerResLocElement = XmlUtils.appendElement(propOwnerResAsocElement,
            OjbcNamespaceContext.NS_NC_30, "Location");
    XmlUtils.addAttribute(propOwnerResLocElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref",
            "Property_Owner_Loc_01");

    Element vehicOwnerResAsocElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_NC_30, "PersonResidenceAssociation");

    Element vehicOwnerPersonElement = XmlUtils.appendElement(vehicOwnerResAsocElement,
            OjbcNamespaceContext.NS_NC_30, "Person");
    XmlUtils.addAttribute(vehicOwnerPersonElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref",
            "Vehicle_Owner_01");

    Element vehicOwnerLocElement = XmlUtils.appendElement(vehicOwnerResAsocElement,
            OjbcNamespaceContext.NS_NC_30, "Location");
    XmlUtils.addAttribute(vehicOwnerLocElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref",
            "Vehicle_Owner_Loc_01");

    Element activityDocAssocElement = XmlUtils.appendElement(vehicleCrashReportElement,
            OjbcNamespaceContext.NS_NC_30, "ActivityDocumentAssociation");

    Element actDocAssocActivityElement = XmlUtils.appendElement(activityDocAssocElement,
            OjbcNamespaceContext.NS_NC_30, "Activity");
    XmlUtils.addAttribute(actDocAssocActivityElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", "Crash_01");

    Element activDocAssocDocElement = XmlUtils.appendElement(activityDocAssocElement,
            OjbcNamespaceContext.NS_NC_30, "Document");
    XmlUtils.addAttribute(activDocAssocDocElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", "Citation_01");

    Element conveyRegAssocElement = XmlUtils.appendElement(activityDocAssocElement,
            OjbcNamespaceContext.NS_JXDM_51, "ConveyanceRegistrationAssociation");

    Element conveyItemRegElement = XmlUtils.appendElement(conveyRegAssocElement,
            OjbcNamespaceContext.NS_JXDM_51, "ItemRegistration");
    XmlUtils.addAttribute(conveyItemRegElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref",
            "Conveyance_Registration_01");

    Element conveyRetAsocItemElement = XmlUtils.appendElement(conveyRegAssocElement,
            OjbcNamespaceContext.NS_NC_30, "Item");
    XmlUtils.addAttribute(conveyRetAsocItemElement, OjbcNamespaceContext.NS_STRUCTURES_30, "ref", "Vehicle_01");

    OjbcNamespaceContext ojbcNamespaceContext = new OjbcNamespaceContext();

    ojbcNamespaceContext.populateRootNamespaceDeclarations(rootVehicCrashElement);

    return rVehicleCrashDetailDoc;
}

From source file:org.openehealth.coms.cc.web_frontend.consentcreator.controller.PrivilegedRegisterServiceServlet.java

/**
 * Update registered user in the actual request processing
 * //from  w w w  . j  a  v a 2 s. c  o m
 */
private void requestTypeRegisterUser() {

    if (request.getParameter("forename").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Vorname fehlt.");

    } else if (request.getParameter("name").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Name fehlt.");

    } else if (request.getParameter("emailaddress").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Emailaddresse fehlt.");

    } else if (request.getParameter("street").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Strae fehlt.");

    } else if (request.getParameter("zipcode").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Postleitzahl fehlt.");

    } else if (request.getParameter("city").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Stadt fehlt.");

    } else if (request.getParameter("birthdate").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Geburtsdatum fehlt.");

    } else if (request.getParameter("gender").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Geschlecht fehlt.");

    } else if (request.getParameter("privileges").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Privilegien fehlt.");

    } else if (request.getParameter("active").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Teilnahemstatus fehlt.");

    } else {

        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
        Date d = null;

        try {

            d = sdf.parse(request.getParameter("birthdate"));

            if (!sdf.format(d).equals(request.getParameter("birthdate"))) {

                this.writeErrorMessage("Der bergebene Parameter Geburtsdatum ist ungltig.");
                return;
            }

        } catch (Exception e) {
            this.writeErrorMessage("Der bergebene Parameter Geburtsdatum ist ungltig.");
            return;
        }

        int zip = -1;

        try {

            zip = Integer.parseInt(request.getParameter("zipcode"));

        } catch (Exception e) {
            this.writeErrorMessage("Der bergebene Parameter Postleitzahl ist ungltig.");
            return;
        }

        pattern = Pattern.compile(EMAIL_PATTERN);
        matcher = pattern.matcher(request.getParameter("emailaddress"));

        if (!matcher.matches()) {

            this.writeErrorMessage("Ungltige Emailaddresse");
            return;
        }

        User newUser = new User();
        newUser.setActive(Integer.parseInt(request.getParameter("active")));
        newUser.setPrivileges(Integer.parseInt(request.getParameter("privileges")));
        newUser.setBirthdate(d);
        newUser.setCity(request.getParameter("city"));
        newUser.setEmailaddress(request.getParameter("emailaddress"));
        newUser.setForename(request.getParameter("forename"));
        newUser.setGender(request.getParameter("gender"));
        newUser.setName(request.getParameter("name"));
        newUser.setStreet(request.getParameter("street"));
        newUser.setZipcode(zip);
        newUser.setPassword(RandomStringUtils.randomNumeric(64));

        try {

            if (newUser.getPrivileges() >= 1) {

                if (ccService.registerUser(newUser, false)) {
                    this.writeSuccessMessage("Der privilegierte Benutzer wurde erfolgreich registriert.");

                } else {

                    this.writeErrorMessage("Der Benutzer konnte nicht registriert werden.");
                }
            } else {

                if (ccService.registerUser(newUser, false)) {

                    request.setAttribute("message", "Der Benutzer wurde erfolgreich gespeichert.");

                } else {

                    request.setAttribute("message",
                            "Es existiert bereits ein ISIS Benutzerprofil mit diesen Daten, das Profil wurde mit dem neu angelegten Benutzer verknpft.");
                }

                request.setAttribute("title", "Benutzer gespeichert");

                request.setAttribute("messageOrder",
                        "Bitte erstellen Sie eine Einwilligungserklrung, die diesen Vorgang dokumentiert!");
                request.setAttribute("emailaddress", request.getParameter("emailaddress"));

                if (newUser.isActive() == 1) {

                    request.setAttribute("context", "registered");

                } else {

                    request.setAttribute("context", "registerednoparticipation");
                }

                request.setAttribute("show", "signchoicepage");
                this.dispatch("/index.jsp");
            }

        } catch (Exception e) {
            Logger.getLogger(this.getClass()).error(e);
            this.writeErrorMessage(e.getMessage());
        }
    }
}

From source file:org.openehealth.coms.cc.web_frontend.consentcreator.controller.RegisterServiceServlet.java

/**
 * Register user to the actual request processing.
 * //w  w  w  .j a va 2s . co  m
 */
private void requestTypeRegisterSelf() {

    if (request.getParameter("forename").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Vorname fehlt.");

    } else if (request.getParameter("name").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Name fehlt.");

    } else if (request.getParameter("emailaddress").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Emailaddresse fehlt.");

    } else if (request.getParameter("street").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Strae fehlt.");

    } else if (request.getParameter("zipcode").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Postleitzahl fehlt.");

    } else if (request.getParameter("city").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Stadt fehlt.");

    } else if (request.getParameter("birthdate").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Geburtsdatum fehlt.");

    } else if (request.getParameter("gender").trim().equalsIgnoreCase("")) {

        this.writeErrorMessage("Der bergebene Parameter Geschlecht fehlt.");

    } else {

        SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
        Date d = null;

        try {

            d = sdf.parse(request.getParameter("birthdate"));

            if (!sdf.format(d).equals(request.getParameter("birthdate"))) {

                this.writeErrorMessage("Der bergebene Parameter Geburtsdatum ist ungltig.");
                return;
            }

        } catch (Exception e) {
            Logger.getLogger(this.getClass()).error(e);
            this.writeErrorMessage("Der bergebene Parameter Geburtsdatum ist ungltig.");
            return;
        }

        int zip = -1;

        try {

            zip = Integer.parseInt(request.getParameter("zipcode"));

        } catch (Exception e) {
            Logger.getLogger(this.getClass()).error(e);
            this.writeErrorMessage("Der bergebene Parameter Postleitzahl ist ungltig.");
            return;
        }

        pattern = Pattern.compile(EMAIL_PATTERN);
        matcher = pattern.matcher(request.getParameter("emailaddress"));

        if (!matcher.matches()) {

            this.writeErrorMessage("Ungltige Emailaddresse");
            return;
        }

        User newUser = new User();
        newUser.setActive(1);
        newUser.setPrivileges(0);
        newUser.setBirthdate(d);
        newUser.setCity(request.getParameter("city"));
        newUser.setEmailaddress(request.getParameter("emailaddress"));
        newUser.setForename(request.getParameter("forename"));
        newUser.setGender(request.getParameter("gender"));
        newUser.setName(request.getParameter("name"));
        newUser.setStreet(request.getParameter("street"));
        newUser.setZipcode(zip);
        newUser.setPassword(RandomStringUtils.randomNumeric(64));

        try {
            if (ccService.registerUser(newUser, true)) {

                this.writeSuccessMessage("Sie wurden erfolgreich registriert.");

            } else {

                this.writeSuccessMessage(
                        "Es existiert bereits ein ISIS Benutzerprofil mit diesen Daten, wenden Sie sich bitte an die Clearingstelle.");
            }

        } catch (Exception e) {
            e.printStackTrace();
            Logger.getLogger(this.getClass()).error(e);
            this.writeErrorMessage(e.getMessage());
        }
    }
}

From source file:org.openehealth.coms.cc.web_frontend.consentcreator.service.ConsentCreatorService.java

/**
 * Deactivates the given in the database, removes possible password requests
 * and sets a new password for the account.
 * /*from ww  w  .  j a v a2s  .c om*/
 * @param user
 * @return
 */
public boolean deactivateUser(User user) {

    if (database.deactivateUser(user.getID())) {

        if (database.existsPasswordRequestForUser(user.getID())) {
            database.removeRefIDForUser(user.getID());
        }
        database.updateUserPassword(user.getID(),
                documentFactory.getMD5Hash(RandomStringUtils.randomNumeric(64)));
        return true;
    }

    return false;
}

From source file:org.openehealth.coms.cc.web_frontend.consentcreator.service.ConsentCreatorService.java

/**
 * Registers the given User with the local database of the service as well
 * as with the external patient register.
 * /*  w  ww.j a v  a  2 s.c  o  m*/
 * @param user
 * @param out
 * @param orphanRegister
 *            - true if the user is the one registering himself, else he is
 *            being registered by personnel, then this is false.
 * @throws ServiceException
 *             - Throws an exception if the user is already registered with
 *             the service.
 * @return - true if the user was newly registered. false if the user was
 *         only registered to the local database and existed in the external
 *         register already.
 */
public boolean registerUser(User user, boolean orphanRegister) throws ServiceException {

    User author = null;

    // Check whether the user is already registered or not
    if (!database.existsUser(user)) {
        // If the user is a privileged user register him only locally
        if (user.getPrivileges() >= 1) {

            // Generate a random id considerably larger then the ids
            // received from the register
            user.setID(RandomStringUtils.randomNumeric(96));
            database.storeUser(user);
            String s = database.storePasswordRequest(user);
            shipper.sendPasswordLinkToEmail(0, user, s);
            return true;
        }

        // Check with the external register whether the user is already
        // registered or not
        String id = shipper.existsUser(user);

        // User is not already present in the register
        if (id.equalsIgnoreCase("-1")) {

            if (orphanRegister) {
                author = user;
            }

            user.setID(RandomStringUtils.randomNumeric(64));
            if (!shipper.registerUser(user)) {
                throw new ServiceException("Der Benutzer konnte nicht registriert werden.");
            }
            database.storeUser(user);
            String s = database.storePasswordRequest(user);
            shipper.sendPasswordLinkToEmail(0, user, s);

            if (orphanRegister) {
                Document cda = documentFactory.constructCDA(user, null, author, false, null);
                if (!shipper.sendCDA(cda, user)) {
                    return false; // TODO Hier sollte was passieren wenn der
                                  // CDA nicht erfolgreich gesendet werden
                                  // kann.
                }
            }

            return true;
        }
        // User is only going to be registered locally
        else {
            // Set participation to false so no documents are transmitted
            // until the conflict is resolved.
            boolean participation = false;

            // If the user registers himself and is already registered with
            // the patient register store him as inactive and
            // mark him
            if (orphanRegister) {
                user.setActive(0);
                author = user;
            }
            // If the user is being registered by a trusted care provider,
            // send him a password and activate the account.
            else {
                user.setActive(1);
                participation = true;

            }
            user.setID(id);
            database.storeUser(user);

            if (orphanRegister) {
                database.storeConflict(id);
                Document cda = documentFactory.constructCDA(user, null, author, participation, null);
                shipper.sendCDA(cda, user);
            } else {
                String s = database.storePasswordRequest(user);
                shipper.sendPasswordLinkToEmail(0, user, s);
            }

            return false;
        }
    }
    // Can't register if a user with corresponding data already exists.
    else {
        throw new ServiceException("Unter den angegebenen Daten existiert bereits ein Benutzer.");
    }
}

From source file:org.openehealth.coms.cc.web_frontend.consentcreator.service.Database.java

/**
 * Stores information about a uncleared consent.
 * //from w w  w  .  j  av  a 2s.c  o m
 * @param id
 *            - ID of the user associated with the uncleared consent.
 * @param cdaHash
 *            - MD5 hash of the consent cda.
 * @return
 */
public String storeUnclearedConsent(String id, String cdaHash, int participation) {

    boolean usedNmbr = true;
    String refID = "";

    while (usedNmbr) {

        String s = RandomStringUtils.randomNumeric(64);

        if (!existsRefidUnclearedConsent(s)) {
            refID = s;
            usedNmbr = false;
        }
    }

    boolean stored = false;

    String sql = "INSERT INTO unclearedConsents (id, filename, md5hash, participation, timestamp) VALUES (?, ?, ?, ?, ?);";
    Connection connection = null;
    PreparedStatement statement = null;
    int result = -1;

    try {
        connection = conFact.getConnection();
        statement = connection.prepareStatement(sql);
        statement.setString(1, id);
        statement.setString(2, refID);
        statement.setString(3, cdaHash);
        statement.setInt(4, participation);
        statement.setTimestamp(5, new Timestamp(new Date().getTime()));
        result = statement.executeUpdate();
        if (result == 1) {
            stored = true;
        } else {
            throw new ServiceException("Die Anfrage konnte nicht gespeichert werden!");
        }
    } catch (SQLException e) {
        Logger.getLogger(this.getClass()).error(e);
    }

    finally {
        try {
            connection.close();
        } catch (SQLException e) {
            Logger.getLogger(this.getClass()).error(e);
        }
    }
    if (stored) {
        return refID;
    }
    return "";
}

From source file:org.openehealth.coms.cc.web_frontend.consentcreator.service.Database.java

/**
 * Stores that a new password for the given user was requested.
 * /*from  ww  w  . j  a va 2s .c  o m*/
 * @param user
 * @return refID - The ID used to identify the request.
 */
public String storePasswordRequest(User user) {

    boolean usedNmbr = true;
    String refID = "";

    while (usedNmbr) {

        String s = RandomStringUtils.randomNumeric(64);

        if (!existsPasswordRequest(s, false)) {
            refID = s;
            usedNmbr = false;
        }
    }

    boolean stored = false;

    String sql = "INSERT INTO passwordRequests (id, refid, timestamp, emailaddress) VALUES (?, ?, ?, ?);";
    Connection connection = null;
    PreparedStatement statement = null;
    int result = -1;

    try {
        connection = conFact.getConnection();
        statement = connection.prepareStatement(sql);
        statement.setString(1, user.getID());
        statement.setString(2, refID);
        statement.setTimestamp(3, new Timestamp(new Date().getTime()));
        statement.setString(4, user.getEmailaddress());
        result = statement.executeUpdate();
        if (result == 1) {
            stored = true;
        } else {
            throw new ServiceException("Die Anforderung konnte nicht gespeichert werden!");
        }
    } catch (SQLException e) {
        Logger.getLogger(this.getClass()).error(e);
    }

    finally {
        try {
            connection.close();
        } catch (SQLException e) {
            Logger.getLogger(this.getClass()).error(e);
        }
    }
    if (stored) {
        return refID;
    }

    return "";
}

From source file:org.openehealth.coms.cc.web_frontend.consentcreator.service.DocumentFactory.java

/**
 * Constructs a CDA Consent for the given user.
 * /*from   w  w  w .  j a va2  s.  c o  m*/
 * @param user
 * @param policySet
 *            - null if either the participation should end or if a new
 *            PolicySet should be created.
 * @param author
 * @param participation
 *            - true if the user wants to participate, else false
 * @param out
 *            - The OutputStream on which the generated PDF presentation
 *            will be written
 * @return - The generated CDA file.
 * 
 */
public Document constructCDA(User user, Document policySet, User author, boolean participation,
        OutputStream out) {

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    Document domCDA = null;
    Document domAssignedAuthor = null;
    Document domScanningDevice = null;
    Document domDataEnterer = null;
    Document domCustodian = null;
    Document domLegalAuthenticator = null;
    String cdaAsString = "";

    DocumentBuilder db = null;
    try {
        db = dbf.newDocumentBuilder();

        domCDA = db.parse(urlCdaSkeleton);
        domAssignedAuthor = db.parse(urlAssignedAuthor);
        domScanningDevice = db.parse(urlScanningDevice);
        domDataEnterer = db.parse(urlDataEnterer);
        domCustodian = db.parse(urlCustodian);
        domLegalAuthenticator = db.parse(urlLegalAuthenticator);

    } catch (Exception e) {
        Logger.getLogger(this.getClass()).error(e);
    }

    Date d = new Date();

    String uniqueID = RandomStringUtils.randomNumeric(64);

    domCDA.getElementsByTagName("id").item(0).getAttributes().item(0).setNodeValue(uniqueID);
    domCDA.getElementsByTagName("id").item(0).getAttributes().item(1)
            .setNodeValue("1.2.276.0.76.3.1.78.1.0.10.40");

    SimpleDateFormat sd = new SimpleDateFormat("yyyyMMddHHmmssZ");

    domCDA.getElementsByTagName("effectiveTime").item(0).getAttributes().item(0).setTextContent(sd.format(d));

    Node title = domCDA.getElementsByTagName("title").item(0);

    if (participation) {
        title.setTextContent("Dies ist die Einwilligungserklrung fr die Teilnahme an ISIS von "
                + user.getForename() + " " + user.getName());
    } else {
        title.setTextContent("Dieses Dokument erklrt den Verzicht von " + user.getForename() + " "
                + user.getName() + " auf die Teilnahme an ISIS.");
    }

    Node pR = domCDA.getElementsByTagName("patientRole").item(0);

    NodeList prChildren = pR.getChildNodes();

    Node id = prChildren.item(1);

    // extension
    id.getAttributes().item(0).setNodeValue(user.getID()); // PID
    // root
    id.getAttributes().item(1).setNodeValue("1.2.276.0.76.3.1.78.1.0.10.20"); // Assigning
    // Authority

    NodeList addr = prChildren.item(3).getChildNodes();

    addr.item(1).setTextContent(user.getStreet());
    addr.item(3).setTextContent(user.getCity());
    addr.item(5).setTextContent("");//Hier knnte das Bundesland
    // stehen!

    addr.item(7).setTextContent(String.valueOf(user.getZipcode()));
    addr.item(9).setTextContent("Deutschland");// Es sollte nicht
    // standardmig Deutschland
    // gesetzt werden!

    NodeList pat = prChildren.item(5).getChildNodes();

    NodeList name = pat.item(1).getChildNodes();

    if (user.getGender().equalsIgnoreCase("male")) {
        name.item(1).setTextContent("Herr");
        pat.item(3).getAttributes().item(0).setTextContent("M");
    } else {
        name.item(1).setTextContent("Frau");
        pat.item(3).getAttributes().item(0).setTextContent("F");
    }
    name.item(3).setTextContent(user.getForename());
    name.item(5).setTextContent(user.getName());

    SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");

    pat.item(5).getAttributes().item(0).setTextContent(formatter.format(user.getBirthdate()));

    if (policySet == null) {
        policySet = getSkeletonPolicySet(participation, user);

    }
    Document doc = db.newDocument();

    Element root = doc.createElement("component");
    doc.appendChild(root);

    Node copy = doc.importNode(policySet.getDocumentElement(), true);
    root.appendChild(copy);

    NodeList list = domCDA.getElementsByTagName("structuredBody");

    Node f = domCDA.importNode(doc.getDocumentElement(), true);

    list.item(0).appendChild(f);

    Node docuOfNode = domCDA.getElementsByTagName("documentationOf").item(0);

    if (author == user) {

        domAssignedAuthor.getElementsByTagName("time").item(0).getAttributes().item(0)
                .setNodeValue(sd.format(d));

        domAssignedAuthor.getElementsByTagName("id").item(0).getAttributes().item(0)
                .setNodeValue(author.getID()); // ID
        domAssignedAuthor.getElementsByTagName("id").item(0).getAttributes().item(1)
                .setNodeValue("1.2.276.0.76.3.1.78.1.0.10.20");// MPI-assigning
        // authority

        if (user.getGender().equalsIgnoreCase("male")) {
            domAssignedAuthor.getElementsByTagName("prefix").item(0).setTextContent("Herr");
        } else {
            name.item(1).setTextContent("Frau");
            domAssignedAuthor.getElementsByTagName("prefix").item(0).setTextContent("Frau");
        }

        // suffix Wert setzen
        // domAssignedAuthor.getElementsByTagName("suffix").item(0).getAttributes().item(0).setNodeValue("");

        domAssignedAuthor.getElementsByTagName("given").item(0).setTextContent(author.getForename());
        domAssignedAuthor.getElementsByTagName("family").item(0).setTextContent(author.getName());

        // TODO Werte setzen assignedPerson oder Werte loeschen
    } else if (author != user && author != null) {
        // Zukunft: Erzeugung durch Dritte
    } else {
        // Std values from AssignedAuthor.xml
    }

    Node copyAssignedAuthorNode = domCDA.importNode(domAssignedAuthor.getDocumentElement(), true);
    Node copyScanningDeviceNode = domCDA.importNode(domScanningDevice.getDocumentElement(), true);
    Node copyDataEntererNode = domCDA.importNode(domDataEnterer.getDocumentElement(), true);
    Node copyCustodianNode = domCDA.importNode(domCustodian.getDocumentElement(), true);
    Node copyLegalAuthenticator = domCDA.importNode(domLegalAuthenticator.getDocumentElement(), true);

    sd.applyPattern("yyyyMMdd");

    domCDA.getElementsByTagName("low").item(0).getAttributes().item(0).setNodeValue(sd.format(d));

    Date d2 = new Date((long) (d.getTime() + 30 * 3.1556926 * Math.pow(10, 10)));

    domCDA.getElementsByTagName("high").item(0).getAttributes().item(0).setNodeValue(sd.format(d2));

    copyAssignedAuthorNode.getChildNodes().item(3).getAttributes().item(0).setNodeValue(sd.format(d));

    Node clinicalDocumentNode = domCDA.getElementsByTagName("ClinicalDocument").item(0);

    clinicalDocumentNode.insertBefore(copyAssignedAuthorNode, docuOfNode);
    clinicalDocumentNode.insertBefore(copyScanningDeviceNode, docuOfNode);
    clinicalDocumentNode.insertBefore(copyDataEntererNode, docuOfNode);
    clinicalDocumentNode.insertBefore(copyCustodianNode, docuOfNode);
    clinicalDocumentNode.insertBefore(copyLegalAuthenticator, docuOfNode);

    Document noNSCDA = (Document) domCDA.cloneNode(true);

    NodeList l = noNSCDA.getElementsByTagName("ClinicalDocument");

    NamedNodeMap attributes = l.item(0).getAttributes();
    attributes.removeNamedItem("xmlns");
    attributes.removeNamedItem("xmlns:voc");
    attributes.removeNamedItem("xmlns:xsi");
    attributes.removeNamedItem("xsi:schemaLocation");

    l = noNSCDA.getElementsByTagName("PolicySet");
    attributes = l.item(0).getAttributes();
    attributes.removeNamedItem("xmlns");
    attributes.removeNamedItem("PolicyCombiningAlgId");
    attributes.removeNamedItem("xmlns:xsi");
    attributes.removeNamedItem("xsi:schemaLocation");
    attributes.removeNamedItem("PolicySetId");

    formatter = new SimpleDateFormat("dd.MM.yyyy");

    noNSCDA.getElementsByTagName("birthTime").item(0).getAttributes().item(0)
            .setTextContent(formatter.format(user.getBirthdate()));

    cdaAsString = getStringFromDocument(noNSCDA);
    Document nonXMLBody = constructPDF(cdaAsString, out);

    Node copyNode = domCDA.importNode(nonXMLBody.getDocumentElement(), true);

    Node component = domCDA.getElementsByTagName("component").item(0);

    Node structBody = component.getChildNodes().item(1);

    component.insertBefore(copyNode, structBody);

    NamedNodeMap nlm = domCDA.getDocumentElement().getElementsByTagName("PolicySet").item(0).getAttributes();
    // nlm.removeNamedItem("xmlns:xsi");
    // nlm.removeNamedItem("xsi:schemaLocation");

    return domCDA;
}

From source file:org.openehealth.coms.cc.web_frontend.DatabaseTests.java

@Test
public void testDatabaseMethods() {
    try {//from   w w  w  . ja  v a2  s  .  c o  m
        User user1 = new User();

        user1.setActive(1);
        user1.setBirthdate(new Date());
        user1.setCity("Heidelberg");
        user1.setEmailaddress("allyourbase@arebelongto.us");
        user1.setForename("Homo");
        user1.setName("Heidelbergensis");
        user1.setGender("male");
        user1.setID("999999");
        user1.setPassword("admin");
        user1.setPrivileges(0);
        user1.setStreet("Sesamstrae");
        user1.setZipcode(69120);
        user1.setPassword(RandomStringUtils.randomNumeric(64));

        assertTrue(database.storeUser(user1));

        assertTrue(database.existsUser(user1));

        assertNotNull(database.retrieveUserByEmail(user1.getEmailaddress()));

        assertNotNull(database.retrieveUser(user1.getName(), user1.getForename(), user1.getBirthdate(),
                user1.getGender()));

        assertNotNull(database.retrieveUserByID(user1.getID()));

        assertTrue(database.deactivateUser(user1.getID()));

        assertTrue(database.activateUser(user1.getID()));

        String s = database.storePasswordRequest(user1);

        assertTrue(database.existsPasswordRequest(s, false));

        assertNotNull(database.retrieveUserByPasswordRequest(s));

        assertTrue(database.removeRefID(s));

        assertFalse(database.retrievePassword(user1.getEmailaddress()).equalsIgnoreCase(""));

        assertTrue(database.updateUser(user1));

        assertTrue(database.updateUserPassword(user1.getID(), user1.getPassword()));

        assertTrue(database.retrievePassword(user1.getEmailaddress()).equalsIgnoreCase(user1.getPassword()));

        assertTrue(database.storeConflict(user1.getID()));

        assertTrue(database.showConflicts().size() != 0);

        assertTrue(database.removeConflict(user1.getID()));

        assertFalse(database.storeUnclearedConsent(user1.getID(), "abc", 1).equalsIgnoreCase(""));

        assertTrue(database.existsUnclearedConsent(user1.getID()));

        assertFalse(database.retrieveUnclearedConsentFilename(user1.getID()).equalsIgnoreCase(""));

        assertTrue(database.showUnclearedConsents().size() != 0);

        assertTrue(database.removeUnclearedConsent(user1.getID()));

        assertTrue(database.removeUser(user1.getID()));

        assertFalse(database.existsUser(user1));

    } catch (Exception e) {
        e.printStackTrace();
        fail();
    }
}