@Test public void marshallsDynamicElementName() throws JAXBException { JAXBContext context = JAXBContext.newInstance(ObjectFactory.class); final Characteristics characteristics = new Characteristics(); final Characteristic characteristic = new Characteristic( "store_capacity", "40"); characteristics.getCharacteristics().add(characteristic); context.createMarshaller().marshal(characteristics, System.out); }
private void checkForMissingAttributes() { for (Object obj :scorecard.getExtensionsAndCharacteristicsAndMiningSchemas()){ if (obj instanceof Characteristics){ Characteristics characteristics = (Characteristics)obj; for (Characteristic characteristic : characteristics.getCharacteristics()){ String newCellRef = ScorecardPMMLUtils.getExtensionValue(characteristic.getExtensions(), "cellRef"); if ( characteristic.getAttributes().size() == 0 ) { parseErrors.add(new ScorecardError(newCellRef, "Missing Attribute Bins for Characteristic '"+characteristic.getName()+"'.")); } } } } }
/** * Create an instance of {@link Characteristics } * */ public Characteristics createCharacteristics() { return new Characteristics(); }
private void validateBaselineScores() { for (Object obj :scorecard.getExtensionsAndCharacteristicsAndMiningSchemas()){ Double scorecardBaseline = scorecard.getBaselineScore(); if (obj instanceof Characteristics){ Characteristics characteristics = (Characteristics)obj; for (Characteristic characteristic : characteristics.getCharacteristics()){ Double charBaseline = characteristic.getBaselineScore(); if ( (charBaseline == null || charBaseline.doubleValue() == 0) && ((scorecardBaseline == null || scorecardBaseline.doubleValue() == 0)) ){ String newCellRef = createDataTypeCellRef(ScorecardPMMLUtils.getExtensionValue(characteristic.getExtensions(), "cellRef"),2); parseErrors.add(new ScorecardError(newCellRef, "Characteristic is missing Baseline Score")); } } } } }
public void sheetStart(String worksheetName) { //this.worksheetName = worksheetName; expectations.clear(); cellRangeList = null; _characteristic = null; scorecard = ScorecardPMMLUtils.createScorecard(); output = new Output(); characteristics = new Characteristics(); miningSchema = new MiningSchema(); scorecard.getExtensionsAndCharacteristicsAndMiningSchemas().add(miningSchema); scorecard.getExtensionsAndCharacteristicsAndMiningSchemas().add(output); scorecard.getExtensionsAndCharacteristicsAndMiningSchemas().add(characteristics); }
private void removeAttributeFieldExtension(Scorecard pmmlScorecard) { for (Object obj : pmmlScorecard.getExtensionsAndCharacteristicsAndMiningSchemas()) { if (obj instanceof Characteristics) { Characteristics characteristics = (Characteristics) obj; for (org.dmg.pmml.pmml_4_2.descr.Characteristic characteristic : characteristics.getCharacteristics()) { for (Attribute attribute : characteristic.getAttributes()) { Extension fieldExtension = ScorecardPMMLUtils.getExtension(attribute.getExtensions(), ScorecardPMMLExtensionNames.CHARACTERTISTIC_FIELD); if ( fieldExtension != null ) { attribute.getExtensions().remove(fieldExtension); //break; } } } } } }
public static PMML createPMMLDocument(final ScoreCardModel model) { final Scorecard pmmlScorecard = ScorecardPMMLUtils.createScorecard(); final Output output = new Output(); final Characteristics characteristics = new Characteristics(); final MiningSchema miningSchema = new MiningSchema(); characteristics.getCharacteristics().add(_characteristic);
.stream() .map(prod -> { Characteristics chr = new Characteristics(); IntStream.range(0, prod.length) .forEach(i -> {
private void checkCharacteristics(PMML pmml) { if (pmml != null && pmml.getAssociationModelsAndBaselineModelsAndClusteringModels() != null && !pmml.getAssociationModelsAndBaselineModelsAndClusteringModels().isEmpty()) { for (Serializable s : pmml.getAssociationModelsAndBaselineModelsAndClusteringModels()) { if (s instanceof Scorecard) { Scorecard scard = (Scorecard) s; if (scard.getExtensionsAndCharacteristicsAndMiningSchemas() != null && !scard.getExtensionsAndCharacteristicsAndMiningSchemas().isEmpty()) { for (Serializable sz : scard.getExtensionsAndCharacteristicsAndMiningSchemas()) { if (sz instanceof Characteristics) { Characteristics characteristics = (Characteristics) sz; if (characteristics.getCharacteristics() == null || characteristics.getCharacteristics().isEmpty()) { Characteristic ch = new Characteristic(); ch.setBaselineScore(0.0); ch.setName("placeholder"); Attribute attr = new Attribute(); attr.setFalse(new False()); ch.getAttributes().add(attr); characteristics.getCharacteristics().add(ch); } } } } } } } } }
private void removeEmptyExtensions(Scorecard pmmlScorecard) { for (Object obj : pmmlScorecard.getExtensionsAndCharacteristicsAndMiningSchemas()) { if (obj instanceof Characteristics) { Characteristics characteristics = (Characteristics) obj; for (org.dmg.pmml.pmml_4_2.descr.Characteristic characteristic : characteristics.getCharacteristics()) { List<Extension> toRemoveExtensionsList = new ArrayList<Extension>(); for (Extension extension : characteristic.getExtensions()) { if (StringUtils.isEmpty(extension.getValue())) { toRemoveExtensionsList.add(extension); } } for (Extension extension : toRemoveExtensionsList) { characteristic.getExtensions().remove(extension); } for (Attribute attribute : characteristic.getAttributes()) { List<Extension> toRemoveExtensionsList2 = new ArrayList<Extension>(); for (Extension extension : attribute.getExtensions()) { if (StringUtils.isEmpty(extension.getValue())) { toRemoveExtensionsList2.add(extension); } } for (Extension extension : toRemoveExtensionsList2) { attribute.getExtensions().remove(extension); } } } } } }
if (obj instanceof Characteristics){ Characteristics characteristics = (Characteristics)obj; for (Characteristic characteristic : characteristics.getCharacteristics()){ String dataType = ScorecardPMMLUtils.getExtensionValue(characteristic.getExtensions(), ScorecardPMMLExtensionNames.CHARACTERTISTIC_DATATYPE); String newCellRef = createDataTypeCellRef(ScorecardPMMLUtils.getExtensionValue(characteristic.getExtensions(), "cellRef"),1);
private void validateWeights() { for (Object obj :scorecard.getExtensionsAndCharacteristicsAndMiningSchemas()){ if (obj instanceof Characteristics){ Characteristics characteristics = (Characteristics)obj; for (Characteristic characteristic : characteristics.getCharacteristics()){ for (Attribute attribute : characteristic.getAttributes()){ String newCellRef = createDataTypeCellRef(ScorecardPMMLUtils.getExtensionValue(attribute.getExtensions(), "cellRef"),2); String weight = ScorecardPMMLUtils.getExtensionValue(attribute.getExtensions(), ScorecardPMMLExtensionNames.CHARACTERTISTIC_WEIGHT); if ( StringUtils.isEmpty(weight) || !isDouble(weight)){ parseErrors.add(new ScorecardError(newCellRef, "Attribute is missing weight or specified weight is not a double.")); } } } } } }
private void createAndSetPredicates(Scorecard pmmlScorecard) { for (Object obj : pmmlScorecard.getExtensionsAndCharacteristicsAndMiningSchemas()) { if (obj instanceof Characteristics) { Characteristics characteristics = (Characteristics) obj; for (org.dmg.pmml.pmml_4_2.descr.Characteristic characteristic : characteristics.getCharacteristics()) { String dataType = ScorecardPMMLUtils.getExtensionValue(characteristic.getExtensions(), ScorecardPMMLExtensionNames.CHARACTERTISTIC_DATATYPE); Extension predicateExtension = null; for (Attribute attribute : characteristic.getAttributes()) { String predicateAsString = ""; String field = ScorecardPMMLUtils.getExtensionValue(attribute.getExtensions(), ScorecardPMMLExtensionNames.CHARACTERTISTIC_FIELD); for (Extension extension : attribute.getExtensions()) { if ("predicateResolver".equalsIgnoreCase(extension.getName())) { predicateAsString = extension.getValue(); predicateExtension = extension; break; } } setPredicatesForAttribute(attribute, dataType, field, predicateAsString); attribute.getExtensions().remove(predicateExtension); } } } } }
private void validateReasonCodes() { for (Object obj :scorecard.getExtensionsAndCharacteristicsAndMiningSchemas()){ if (obj instanceof Characteristics){ Characteristics characteristics = (Characteristics)obj; for (Characteristic characteristic : characteristics.getCharacteristics()){ String charReasonCode = characteristic.getReasonCode(); if (charReasonCode == null || StringUtils.isEmpty(charReasonCode)){ for (Attribute attribute : characteristic.getAttributes()){ String newCellRef = createDataTypeCellRef(ScorecardPMMLUtils.getExtensionValue(attribute.getExtensions(), "cellRef"),3); String attrReasonCode = attribute.getReasonCode(); if ( attrReasonCode == null || StringUtils.isEmpty(attrReasonCode)){ parseErrors.add(new ScorecardError(newCellRef, "Attribute is missing Reason Code")); } } } } } } }
for (MiningField miningField : schema.getMiningFields()) { String fieldName = miningField.getName(); for (Characteristic characteristic : characteristics.getCharacteristics()){ String characteristicName = ScorecardPMMLUtils.extractFieldNameFromCharacteristic(characteristic); if (fieldName.equalsIgnoreCase(characteristicName)){
if (obj instanceof Characteristics) { Characteristics characteristics = (Characteristics) obj; for (org.dmg.pmml.pmml_4_2.descr.Characteristic characteristic : characteristics.getCharacteristics()) {
characteristics.getCharacteristics().add(_characteristic); addExpectation(currentRowCtr + 1, currentColCtr, "name", _characteristic, "Characteristic (Property) Display Name is missing.");