/** * config generation for 'element -- operator -- element' mapping scenario stright forwerd and * this method provide assignment for this operator * * @param operator this operator * @param inputElement element map from input schema tree * @return assignment statement for map */ private AssignmentStatement getSimpleOperatorMapping(Operator operator, Element inputElement) { Element outputElement = getOutputElement(operator); TreeNode outputParent = getOutputElementParent(operator); String index = ""; if (inputElement.getFieldParent().getSchemaDataType().equals(SchemaDataType.ARRAY)) index = getIndex(); StringBuilder builder = new StringBuilder(); builder .append(getTreeHierarchy(outputElement.getFieldParent(), outputParent)) .append(".") .append(outputElement.getName()) .append(" = ") .append(inputElement.getFieldParent().getName()) .append(index) .append(".") .append(inputElement.getName()) .append(getOperatorFunction()) .append(";"); AssignmentStatement statement = new AssignmentStatement(); statement.setStatement(builder.toString()); return statement; }
/** * config generation in operator chaining is partial. This method provide partial config for * complete ful assignment. * * @param operatorInput element map from input schema tree * @return partial of config */ private String createSubAssignment(Element operatorInput) { StringBuilder builder = new StringBuilder(); builder .append(" = ") .append(operatorInput.getFieldParent().getName()) .append(".") .append(operatorInput.getName()) .append(getOperatorFunction()); return builder.toString(); }
@Override public String trasnform(String subStatement, Operator previousOperator, Operator operator) { EObject operatorOutput = getOutputObject(operator); StringBuilder builder = new StringBuilder(); builder.append(subStatement); if (operatorOutput instanceof Element) { // fill the blank Element outputElement = (Element) operatorOutput; builder.insert(0, outputElement.getFieldParent().getName() + "." + outputElement.getName()); builder.append(getOperatorFunction()).append(";"); return builder.toString(); } else if (operatorOutput instanceof OperatorLeftConnector) { Operator nextOperator = (Operator) getOperator(operatorOutput); builder.append(getOperatorFunction()); OperatorsTransformer transformer = DataMapperTransformerRegistry.getInstance().getTransformer(nextOperator); String assign = transformer.trasnform(builder.toString(), operator, nextOperator); return assign; } return null; }