Package edu.isi.karma.kr2rml.template

Source Code of edu.isi.karma.kr2rml.template.PythonTransformationToTemplateTermSetBuilder

package edu.isi.karma.kr2rml.template;

import java.util.List;

import edu.isi.karma.kr2rml.mapping.KR2RMLMappingColumnNameHNodeTranslator;
import edu.isi.karma.rep.HNode;
import edu.isi.karma.rep.RepFactory;
import edu.isi.karma.transformation.tokenizer.PythonTransformationAsURITokenizer;
import edu.isi.karma.transformation.tokenizer.PythonTransformationColumnToken;
import edu.isi.karma.transformation.tokenizer.PythonTransformationInvalidToken;
import edu.isi.karma.transformation.tokenizer.PythonTransformationStringToken;
import edu.isi.karma.transformation.tokenizer.PythonTransformationToken;
import edu.isi.karma.transformation.tokenizer.PythonTransformationTokenVistor;

public class PythonTransformationToTemplateTermSetBuilder extends PythonTransformationTokenVistor{

  private HNode referenceHNode;
  private RepFactory factory;
  private KR2RMLMappingColumnNameHNodeTranslator translator;
  private TemplateTermSet tts;
  public PythonTransformationToTemplateTermSetBuilder(KR2RMLMappingColumnNameHNodeTranslator translator, RepFactory factory)
  {
    this.translator = translator;
    this.factory = factory;
  }
  @Override
  protected
  void visit(PythonTransformationToken pythonTransformationToken) {
   
  }

  protected
  void visit(PythonTransformationColumnToken pythonTransformationToken) {
   
    HNode columnHNode = referenceHNode.getNeighborByColumnName(pythonTransformationToken.toString(), factory);
    String columnName = translator.getColumnNameForHNodeId(columnHNode.getId());
    tts.addTemplateTermToSet(new ColumnTemplateTerm(columnName));
   
  }
 
  protected void visit(PythonTransformationStringToken pythonTransformationToken) {
    tts.addTemplateTermToSet(new StringTemplateTerm(pythonTransformationToken.toString()));

  }
 
  protected void visit(PythonTransformationInvalidToken pythonTransformationToken) {
 
  }
 
  public TemplateTermSet translate(String transformationCode, String referenceHNodeId)
  {
    List<PythonTransformationToken> tokens = PythonTransformationAsURITokenizer.tokenize(transformationCode);
    return translate(tokens, referenceHNodeId);
   
  }
  public TemplateTermSet translate(List<PythonTransformationToken> tokens, String referenceHNodeId) {
    tts = new TemplateTermSet();
    referenceHNode = factory.getHNode(referenceHNodeId);
    this.visit(tokens);
    return tts;
  }

}
TOP

Related Classes of edu.isi.karma.kr2rml.template.PythonTransformationToTemplateTermSetBuilder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.