@Override public String[] getTargetVarNames(AggregatorConfig aggregatorConfig) { Config config = (Config) aggregatorConfig; String targetName = StringUtils.isNotNullAndNotEmpty(config.targetName) ? config.targetName : config.varName; int percentage = getEffectivePercentage(config.percentage); return createFeatureNames(targetName, "p" + percentage); }
@Override public Aggregator createAggregator(VariableContext varCtx, AggregatorConfig aggregatorConfig) { Config config = (Config) aggregatorConfig; String targetName = StringUtils.isNotNullAndNotEmpty(config.targetName) ? config.targetName : config.varName; int effectivePercentage = getEffectivePercentage(config.percentage); return new AggregatorPercentile(varCtx, config.varName, targetName, effectivePercentage); }
@Override protected boolean verifyUserInput() { String expression = variableItem.variableConfig.getExpr() != null ? variableItem.variableConfig.getExpr().trim() : ""; if (StringUtils.isNullOrEmpty(expression)) { JOptionPane.showMessageDialog( getParent(), "The source band could not be created. The expression is empty."); return false; } String variableName = variableItem.variableConfig.getName() != null ? variableItem.variableConfig.getName().trim() : ""; if (StringUtils.isNullOrEmpty(variableName)) { JOptionPane.showMessageDialog( getParent(), "The source band could not be created. The name is empty."); return false; } if (newVariable && contextProduct.containsBand(variableName)) { String message = String.format( "A source band or band with the name '%s' is already defined", variableName); JOptionPane.showMessageDialog(getParent(), message); return false; } try { BandArithmetic.getValidMaskExpression(expression, new Product[] {contextProduct}, 0, null); } catch (ParseException e) { String errorMessage = "The source band could not be created.\nThe expression could not be parsed:\n" + e.getMessage(); /*I18N*/ JOptionPane.showMessageDialog(getParent(), errorMessage); return false; } return true; }