Package urban.model

Examples of urban.model.Model


    this.baseDir = base;
  }
 
  @Override
  public String transform(String text) {
    Model m;
    try {
      m = parse(text+"\n").model();
      m = new ResolveImports(baseDir).transform(m);
      m = new ShapeToRuleTransformer().transform(m);
     
      StringWriter out = new StringWriter();
     
      out.write("graph G {\noverlap=false;\nratio=fill;\n");
     
      final ModelInfo modelInfo = new ModelInfo(m.getLines());
      for(Agent a : modelInfo.getAgents()){
        out.write(a.getName() + "[fontsize=24,width=1.6,height=1.6]\n");
        for(Site s : a.getSites()){
          if (s.getState() == null){
            out.write(s.getAgent() + " -- " + s.getQualifiedName() +" []\n");
View Full Code Here


  }
 
  @Override
  public String transform(String text) {
    try {
      Model m = parse(text+"\n").model();
     
      m = new ResolveImports(baseDir).transform(m);
      m = new ShapeToRuleTransformer().transform(m);
//      m = new AddPinchesModelTransformer().transform(m);
      m = new AddRatesFromShapesTransformer().transform(m);
     
      return m.toString().trim();
    } catch (RecognitionException e) {
      return stacktrace(e);
    }
  }
View Full Code Here

  @Override
  public Model transform(Model in) {
    ShapeParameters sp = new ModelInfo(in.getLines()).getShapeParameters();
    RateCalculator rc = new RateCalculator(sp);
    Model out = new Model();
   
    for(Statement line : in.getLines())
      if (line instanceof Rule)
        out.addStatement(addRate(rc, (Rule)line));
      else
        out.addStatement(line);
   
    return out;
  }
View Full Code Here

*/
public class AddPinchesModelTransformer implements ModelTransformer {

  @Override
  public Model transform(Model in) {
    Model out = new Model();
 
    for(Statement s : in.getLines()){
      out.addStatement(s);
      if (s instanceof Rule){
        out.addStatements(pinches((Rule)s,1));
      }
    }
    return out;
  }
View Full Code Here

*/
public class ShapeToRuleTransformer implements ModelTransformer {

  @Override
  public Model transform(Model in) {
    Model out = new Model();
    final RuleFactory ruleFactory = new RuleFactory(new ModelInfo(in.getLines()).getShapeParameters());
   
    for(Statement line : in.getLines()){
      out.addStatement(line);
      if (line instanceof GeneratorStatement)
        out.addStatements(ruleFactory.generateRules((((GeneratorStatement)line).getGenerator())));
    }
    return out;
  }
View Full Code Here

    this.baseDir = baseDir;
  }

  @Override
  public Model transform(Model in) {
    Model out = new Model();
   
    for (Statement line : in.getLines()){
      if (line instanceof ImportStatement){
        out.addStatements(getModel(((ImportStatement)line).getFilename()).getLines());
      } else {
        out.addStatement(line);
      }
    }
    return out;
  }
View Full Code Here

  private Model getModel(String filename){
    try {
      return new UrbanParser(new FileReader(new File(baseDir,filename))).model();
    } catch (Exception e) {
      e.printStackTrace();
      Model m = new Model();
      m.addStatement(new Comment("Unable to import the file:"+filename+" due to "+e.toString()));
      return m;
    }
  }
View Full Code Here

public class AddPinchesModelTransformerTest {

  @Test
  public void testPinches() throws RecognitionException {
    Model m = parse("P(x!1,y!2),P(y!1),P(x!2) <-> P(x!1,y!2),P(y!1),P(x!2) @ 1,2\n").model();

    m = new AddPinchesModelTransformer().transform(m);
   
    assertEquals("P(x!1, y!2),P(y!1),P(x!2) <-> P(x!1, y!2),P(y!1),P(x!2) @ 1, 2\n"+
        "P(x!1, y!2),P(x!2, y!1) <-> P(x!1, y!2),P(x!2, y!1) @ 1, 2\n",m.toString());
  }
View Full Code Here

        "P(x!1, y!2),P(x!2, y!1) <-> P(x!1, y!2),P(x!2, y!1) @ 1, 2\n",m.toString());
  }

  @Test
  public void testPinches_NoPinch() throws RecognitionException {
    Model pre = parse("P(f~0,x!1,y!2),P(f~1,y!1),P(f~0,x!2) <-> P(f~1,x!1,y!2),P(f~1,y!1),P(f~0,x!2) @ 1,2\n").model();

    Model post = new AddPinchesModelTransformer().transform(pre);
   
    assertEquals(pre.toString(),post.toString());
  }
View Full Code Here

  private ShapeToRuleTransformer t = new ShapeToRuleTransformer();

  @Test
  public void testTransform() throws RecognitionException {
    Model m = parse(
"%gen: 'G' P(f~0) <-> P(f~1) := 1.150514997831991\n"+
"%shape: 'S1' P(f~1,l!1),P(f~1,r!1) := -1\n"+
"%shape: 'S2' P(f~0,l!1),P(f~0,r!1) := -1\n"+
"%shape: 'S3' P(f~1) := 0.301029995663981\n").model();
   
View Full Code Here

TOP

Related Classes of urban.model.Model

Copyright © 2018 www.massapicom. 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.