public String getXML() { StringBuilder xml = new StringBuilder(); xml.append( XMLHandler.openTag( XML_TAG ) ).append( Const.CR ).append( Const.CR ); for ( ImportRuleInterface rule : getRules() ) { PluginInterface plugin = PluginRegistry.getInstance().getPlugin( ImportRulePluginType.class, rule.getId() ); xml.append( "<!-- " ).append( plugin.getName() ).append( " : " ).append( plugin.getDescription() ).append( Const.CR ).append( " -->" ).append( Const.CR ); xml.append( rule.getXML() ); xml.append( Const.CR ).append( Const.CR ); } xml.append( XMLHandler.closeTag( XML_TAG ) ); return xml.toString(); }
/** * Perform a deep clone * * @return a deep copy of the all the import rules. */ @Override public ImportRules clone() { ImportRules importRules = new ImportRules(); for ( ImportRuleInterface rule : rules ) { importRules.getRules().add( rule.clone() ); } return importRules; }
public ImportRuleCompositeInterface getImportRuleComposite( ImportRuleInterface rule ) throws KettleException { String compositeClassName = rule.getCompositeClassName(); Class<?> compositeClass; Class<?>[] paramClasses = new Class<?>[] {}; Object[] paramArgs = new Object[] {}; Constructor<?> compositeConstructor; try { compositeClass = rule.getClass().getClassLoader().loadClass( compositeClassName ); compositeConstructor = compositeClass.getConstructor( paramClasses ); return (ImportRuleCompositeInterface) compositeConstructor.newInstance( paramArgs ); } catch ( Exception e ) { throw new KettleException( e ); } }
if ( rule.isUnique() ) { PluginInterface plugin = plugins.get( i ); if ( Const.indexOfString( rule.getId(), plugin.getIds() ) >= 0 ) { removeIndex = i; break; PluginInterface plugin = plugins.get( index ); ImportRuleInterface rule = (ImportRuleInterface) registry.loadClass( plugin ); rule.setEnabled( true ); rule.setId( plugin.getIds()[0] );
public List<ImportValidationFeedback> verifyRules( Object subject ) { List<ImportValidationFeedback> feedback = new ArrayList<ImportValidationFeedback>(); for ( ImportRuleInterface rule : rules ) { feedback.addAll( rule.verifyRule( subject ) ); } return feedback; }
protected void getInfo( ImportRules ir ) { ir.getRules().clear(); for ( int i = 0; i < importRules.getRules().size(); i++ ) { ImportRuleInterface rule = importRules.getRules().get( i ); ImportRuleCompositeInterface importRuleComposite = compositesList.get( i ); TableItem tableItem = table.getItem( i ); importRuleComposite.getCompositeData( rule ); rule.setEnabled( tableItem.getChecked() ); ir.getRules().add( rule ); } }
public void loadXML( Node rulesNode ) throws KettleException { List<Node> ruleNodes = XMLHandler.getNodes( rulesNode, BaseImportRule.XML_TAG ); for ( Node ruleNode : ruleNodes ) { String id = XMLHandler.getTagValue( ruleNode, "id" ); PluginRegistry registry = PluginRegistry.getInstance(); PluginInterface plugin = registry.findPluginWithId( ImportRulePluginType.class, id ); if ( plugin == null ) { throw new KettleException( "The import rule of type '" + id + "' could not be found in the plugin registry." ); } ImportRuleInterface rule = (ImportRuleInterface) registry.loadClass( plugin ); rule.loadXML( ruleNode ); getRules().add( rule ); } }
try { TableItem item = new TableItem( table, SWT.NONE ); item.setChecked( rule.isEnabled() );