Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  // ----------------------------------------------------------------------------
  // Copyright (C) 2003 Rafael H. Bordini, Jomi F. Hubner, et al.
  //
  // This library is free software; you can redistribute it and/or
  // modify it under the terms of the GNU Lesser General Public
  // License as published by the Free Software Foundation; either
  // version 2.1 of the License, or (at your option) any later version.
  //
  // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 // Lesser General Public License for more details.
 //
 // You should have received a copy of the GNU Lesser General Public
 // License along with this library; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 //
 // To contact the authors:
 // http://www.inf.ufrgs.br/~bordini
 // http://www.das.ufsc.br/~jomi
 //
 //----------------------------------------------------------------------------
 
 package jason.mas2j;
 
 
 import java.io.File;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
Represents a MAS2J project (usually created from a .mas2j file)
 
 public class MAS2JProject {
 
     public static final String EXT       = "mas2j";
     public static final String AS_EXT    = "asl";
     
     private static Logger logger = Logger.getLogger(MAS2JProject.class.getName());
         
     private String soc;
     private ClassParameters envClass = null
     private ClassParameters controlClass = null;
     private ClassParameters infrastructure = new ClassParameters("Centralised");
     private String projectDir = ".";
     private File   projectFile = null;
     private List<AgentParametersagents = new ArrayList<AgentParameters>();
     private List<Stringclasspaths = new ArrayList<String>();
     private List<Stringsourcepaths = new ArrayList<String>();
     private Map<String,StringdirectiveClasses = new HashMap<String,String>();
     
     public static MAS2JProject parse(String file) {
         try {
             jason.mas2j.parser.mas2j parser = new jason.mas2j.parser.mas2j(new FileReader(file));
             return parser.mas();
         } catch (Exception e) {
             .log(."Error parsing mas2j file."e);
             return null;
         }
     }
         
     public void setupDefault() {
         if ( == null) {
              = new ClassParameters(jason.environment.Environment.class.getName());
         }
     }
     
     public void setDirectory(String d) {
         if (d != null) {
              = d;
             if (.endsWith(.) || .endsWith("/")) {
                  = .substring(0,.length()-1);
             }
         }
     }
     
     public String getDirectory() {
         return ;
     }
     
     public void setProjectFile(File f) {
          = f;
     }
     
    public File getProjectFile() {
        return ;
    }
    
    public void setInfrastructure(ClassParameters infra) {
         = infra;
    }
        return ;
    }
    public boolean isJade() {
        return getInfrastructure().getClassName().equals("Jade");
    }
    
    public void setEnvClass(ClassParameters e) {
         = e;
    }
    public ClassParameters getEnvClass() {
        return ;
    }
    
    public void setSocName(String s) {
         = s;
    }
    public String getSocName() {
        return ;
    }
    public void setControlClass(ClassParameters sControl) {
         = sControl;
    }
    public ClassParameters getControlClass() {
        return ;
    }
    public void initAgMap() {
         = new ArrayList<AgentParameters>();
    }
    public void addAgent(AgentParameters a) {
        .add(a);
    }
    public AgentParameters getAg(String name) {
        for (AgentParameters a) {
            if (a.name.equals(name)) {
                return a;
            }
        }
        return null;
    }
    
    public List<AgentParametersgetAgents() {
        return ;
    }
    
    public Set<FilegetAllASFiles() {
        Set<Filefiles = new HashSet<File>();
        for (AgentParameters agp) {
            if (agp.asSource != null) {
                files.add(agp.asSource);
            }
        }
        return files;
    }
    
    
change the source of the agents using the source path information, also considers code from a jar file (if urlPrefix is not null)
    public void fixAgentsSrc(String urlPrefix) {
        List<Stringsrcpath = getSourcePaths();
        for (AgentParameters agp) {
            if (agp.asSource != null) {
                agp.fixSrc(srcpathurlPrefix);
            }
        }       
    }
    public void addClassPath(String cp) {
        if (cp.startsWith("\"")) {
			cp = cp.substring(1,cp.length()-1);
		}
	}
	public List<StringgetClassPaths() {
		return ;
	}
	public void addSourcePath(String cp) {
		if (cp.startsWith("\"")) {
            cp = cp.substring(1,cp.length()-1);
        }
        .add(cp);
    }
    public List<StringgetSourcePaths() {
        List<Stringr = new ArrayList<String>();
        if (.isEmpty()) {
            r.add(getDirectory());
        }
        for (String p) {
            //if (getDirectory().startsWith(".") || getDirectory().startsWith("/") || getDirectory().charAt(1) == ':') {
            if (p.startsWith(".") || p.startsWith("/") || p.charAt(1) == ':') {         
                r.add(p);
            } else {
                r.add(getDirectory()+"/"+p);
            }
        }
        return r;
    }
    
    public void removeSourcePath(int index) {
        .remove(index);
    }
    public void addDirectiveClass(String idClassParameters classname) {
        .put(idclassname.getClassName());
    }
    
    public Map<String,StringgetDirectiveClasses() {
        return ;
    }
    
    public void registerDirectives() {
        if ( != null) {
            for (String id.keySet()) {
                try {
                    DirectiveProcessor.addDirective(id, (Directive)Class.forName(.get(id)).newInstance());
                } catch (Exception e) {
                    .log(."Error registering directives "+,e);                
                }
            }
        }
    }
    
    public String toString() {
        StringBuilder s = new StringBuilder();
        
        s.append("/*\n");
        s.append("    Jason Project\n\n");
        s.append("    -- created on "+new SimpleDateFormat("MMMM dd, yyyy").format(new Date())+"\n");
        s.append("*/\n\n");
        s.append("MAS " + getSocName() + " {\n");
        s.append("   infrastructure: "+getInfrastructure()+"\n\n");
        
        if (getEnvClass() != null && ! getEnvClass().getClassName().equals(jason.environment.Environment.class.getName())) {
            s.append("   environment: "+getEnvClass());
            if (.getHost() != null) {
                s.append(" at \""+.getHost()+"\"");
            }
            s.append("\n\n");
        }
        
        if (getControlClass() != null) {
            s.append("   executionControl: "+getControlClass());
            if (getControlClass().getHost() != null) {
                s.append(" at \""+getControlClass().getHost()+"\"");
            }
            s.append("\n\n");
        }
        
        // agents
        s.append("   agents:\n");
        Iterator<AgentParametersi = .iterator();
        while (i.hasNext()) {
            s.append("       "+i.next());
            s.append("\n");
        }
        s.append("\n");
        // directives
        if (.size() > 0) {
            s.append("   directives: ");
            for (String d.keySet()) {
                s.append(d+"="+.get(d)+"; ");
            }
            s.append("\n");
        }
        
        // classpath
        if (.size() > 0) {
            s.append("   classpath: ");
            for (String cp) {
                s.append("\""+cp+"\"; ");
            }
            s.append("\n");
        }
        
        // sourcepath
        if (.size() > 0) {
            s.append("   aslSourcePath: ");
            for (String cp) {
                s.append("\""+cp+"\"; ");
            }
            s.append("\n");
        }
        s.append("}");
        return s.toString();
    }
    private InfrastructureFactory infraFac = null// backup 
        if ( == null) {
            try {
                String facClass = Config.get().getInfrastructureFactoryClass(.getClassName());
                 = (InfrastructureFactory)Class.forName(facClass).newInstance();
            } catch (Exception e) { 
                throw new JasonException("The project's infrastructure ('"+.getClassName()+"') is unknown! \n"+e);
            }
        }
        return ;
    }
New to GrepCode? Check out our FAQ X