/** * Create an instance of {@link Extension } * */ public Extension createExtension() { return new Extension(); }
Extension extension = new Extension(); extension.setName( ScorecardPMMLExtensionNames.SCORECARD_SCORING_STRATEGY); scorecard.getExtensionsAndCharacteristicsAndMiningSchemas().add(extension); addExpectation(currentRowCtr, currentColCtr + 1, "value", extension, null); Extension extension = new Extension(); extension.setName( PMMLExtensionNames.EXTERNAL_CLASS ); scorecard.getExtensionsAndCharacteristicsAndMiningSchemas().add(extension); addExpectation(currentRowCtr, currentColCtr + 1, "value", extension, null); Extension extension = new Extension(); extension.setName( ScorecardPMMLExtensionNames.SCORECARD_RESULTANT_SCORE_FIELD); scorecard.getExtensionsAndCharacteristicsAndMiningSchemas().add(extension); addExpectation(currentRowCtr, currentColCtr + 1, "value", extension, null); Extension extension = new Extension(); extension.setName( ScorecardPMMLExtensionNames.SCORECARD_RESULTANT_REASONCODES_FIELD); scorecard.getExtensionsAndCharacteristicsAndMiningSchemas().add(extension); addExpectation(currentRowCtr, currentColCtr + 1, "value", extension, null); Extension extension = new Extension(); extension.setName( PMMLExtensionNames.MODEL_IMPORTS); scorecard.getExtensionsAndCharacteristicsAndMiningSchemas().add(extension); addExpectation(currentRowCtr, currentColCtr + 1, "value", extension, null); Extension extension = new Extension(); extension.setName( PMMLExtensionNames.MODEL_PACKAGE); scorecard.getExtensionsAndCharacteristicsAndMiningSchemas().add(extension); addExpectation(currentRowCtr, currentColCtr + 1, "value", extension, "Scorecard Package is missing");
String dataType = dataTypeExtension.getValue(); String factType = ScorecardPMMLUtils.getExtensionValue(characteristic.getExtensions(), ScorecardPMMLExtensionNames.CHARACTERTISTIC_FACTTYPE); Extension extension = new Extension(); extension.setName("FactType"); extension.setValue(factType); dataField.getExtensions().add(extension); for (Attribute attribute : characteristic.getAttributes()) { for (Extension extension : attribute.getExtensions()) { if ( ScorecardPMMLExtensionNames.CHARACTERTISTIC_FIELD.equalsIgnoreCase(extension.getName())) { field = extension.getValue(); break;
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); } } } } } }
public static Extension getExtension(List extensions, String extensionName) { for (Object obj : extensions) { if (obj instanceof Extension) { Extension extension = (Extension) obj; if (extensionName.equalsIgnoreCase(extension.getName())) { return extension; } } } return null; }
if ( obj instanceof MiningSchema ) { MiningSchema schema = (MiningSchema)obj; Extension adapter = new Extension(); adapter.setName( PMMLExtensionNames.IO_ADAPTER ); adapter.setValue( PMMLIOAdapterMode.BEAN.name() ); schema.getExtensions().add( adapter ); for (MiningField miningField : schema.getMiningFields()) { schema.getMiningFields().add( targetField ); } else if ( obj instanceof Output ) { Extension adapter = new Extension(); adapter.setName( PMMLExtensionNames.IO_ADAPTER ); adapter.setValue( PMMLIOAdapterMode.BEAN.name() ); ( (Output) obj ).getExtensions().add( adapter );
protected void initMiningFieldMap() throws IllegalArgumentException { MiningSchema schema = getMiningSchema(); boolean addExternalBeanRefs = isUseExternalBeanRefs(schema); miningFieldMap = new HashMap<>(); externalMiningFields = new ArrayList<>(); for (MiningField field : schema.getMiningFields()) { miningFieldMap.put(field.getName(), field); if (addExternalBeanRefs) { Extension ext = getExternalClassInfo(field.getExtensions()); if (ext != null) { ExternalBeanRef ref; try { ref = new ExternalBeanRef(field.getName(), ext.getValue(), ModelUsage.MINING); if (ExternalBeanDefinition.DEFAULT_BEAN_PKG.equals(ref.getBeanPackageName()) && this.getOwner().getRootPackage() != null) { ref.setBeanPackageName(this.getOwner().getRootPackage()); } externalMiningFields.add(ref); } catch (IllegalArgumentException e) { throw new IllegalArgumentException("Error while initializing the MiningField map. ",e); } } } } }
protected Extension getExternalClassInfo(List<Extension> extensions) { Extension ext = null; if (extensions != null && !extensions.isEmpty()) { ext = extensions.stream().filter(e -> "externalClass".equals(e.getName())).findFirst().orElse(null); } return ext; }
Extension extension = new Extension(); extension.setName(PMMLExtensionNames.EXTERNAL_CLASS); extension.setValue(model.getFactName()); extension = new Extension(); extension.setName(PMMLExtensionNames.AGENDA_GROUP); extension.setValue(agendaGroup); pmmlScorecard.getExtensionsAndCharacteristicsAndMiningSchemas().add(extension); extension = new Extension(); extension.setName(PMMLExtensionNames.RULEFLOW_GROUP); extension.setValue(agendaGroup); pmmlScorecard.getExtensionsAndCharacteristicsAndMiningSchemas().add(extension); extension = new Extension(); extension.setName(PMMLExtensionNames.MODEL_IMPORTS); pmmlScorecard.getExtensionsAndCharacteristicsAndMiningSchemas().add(extension); List<String> imports = new ArrayList<String>(); extension.setValue(importBuilder.toString()); extension = new Extension(); extension.setName(ScorecardPMMLExtensionNames.SCORECARD_RESULTANT_SCORE_FIELD); extension.setValue(model.getFieldName()); pmmlScorecard.getExtensionsAndCharacteristicsAndMiningSchemas().add(extension); extension = new Extension(); extension.setName(PMMLExtensionNames.MODEL_PACKAGE); String pkgName = model.getPackageName();
protected boolean isUseExternalBeanRefs(MiningSchema schema) { List<Extension> extensions = schema.getExtensions(); if (extensions != null && !extensions.isEmpty()) { Optional<Extension> ext = extensions.stream() .filter(e -> ("adapter".equals(e.getName()) && "BEAN".equals(e.getValue()))) .findFirst(); return ext.isPresent(); } return false; }
if ( fieldExtension != null ) { pmmlScorecard.getExtensionsAndCharacteristicsAndMiningSchemas().remove(fieldExtension); outputField.setName(fieldExtension.getValue()); } else { outputField.setName( "calculatedScore" ); pmmlScorecard.getExtensionsAndCharacteristicsAndMiningSchemas().remove(reasonCodeExtension); reasonCodeField.getExtensions().add( classExtension ); reasonCodeField.setName( reasonCodeExtension.getValue() ); } else { reasonCodeField.setName( "reasonCode" );
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); } } } } }