Exemple #1
0
  public static LinkedList<profile> importer() throws IOException {

    LinkedList<profile> people = new LinkedList<profile>();
    Scanner sFile;
    profile entry;

    try {
      sFile =
          new Scanner(new File("/Users/richarddavies/NetBeansProjects/typ_MatlabGraph/users.dat"));
      sFile.nextLine();
      while (sFile.hasNext()) {

        String profile = sFile.nextLine();
        // System.out.println(profile);

        Scanner profScan = new Scanner(profile);
        profScan.useDelimiter(",");

        while (profScan.hasNext()) {

          Long id = profScan.nextLong();
          String ident = String.valueOf(id);
          String rot_Id = rot13.encrypt(ident);
          Long rot_IntId = Long.parseLong(rot_Id);

          String fname = profScan.next();
          String rot_Name = rot13.encrypt(fname);
          // String sname = profScan.next();
          // int age = profScan.nextInt();
          String gender = profScan.next();
          String nat = profScan.next();

          entry = new profile(id, fname, gender, nat);
          // System.out.println("id: "+id+" name: "+fname+" gender: "+gender+" nationality: "+nat);
          // System.out.println("id: "+rot_IntId+" name: "+rot_Name+" gender: "+gender+"
          // nationality: "+nat);
          people.add(entry);
        }
      }

    } catch (IOException ex) {
      // return people;

      System.out.println("(No System File profile.txt)" + ex);
    }
    return people;
  }
  // sieve
  public static int[] primes(int n)
      throws Exception { // for(int i=1;i<=arr.length-1;i++)out.write(""+arr[i]+" ");
    boolean arr[] = new boolean[n + 1];
    Arrays.fill(arr, true);
    for (int i = 1; i <= Math.sqrt(n); i++) {
      if (!arr[i]) continue;
      for (int j = 2 * i; j <= n; j += i) {
        arr[i] = false;
      }
    }
    LinkedList<Integer> ll = new LinkedList<Integer>();
    for (int i = 1; i <= n; i++) {
      if (arr[i]) ll.add(i);
    }
    n = ll.size();

    int primes[] = new int[n + 1];
    for (int i = 1; i <= n; i++) {
      primes[i] = ll.removeFirst();
    }
    return primes;
  }
  /**
   * Construct a {@link SubProcessHeavy SubProcessHeavy} instance which when executed will fulfill
   * the given action agenda.
   *
   * <p>
   *
   * @param agenda The agenda to be accomplished by the action.
   * @param outFile The file to which all STDOUT output is redirected.
   * @param errFile The file to which all STDERR output is redirected.
   * @return The SubProcess which will fulfill the agenda.
   * @throws PipelineException If unable to prepare a SubProcess due to illegal, missing or
   *     imcompatable information in the action agenda or a general failure of the prep method code.
   */
  public SubProcessHeavy prep(ActionAgenda agenda, File outFile, File errFile)
      throws PipelineException {
    NodeID nodeID = agenda.getNodeID();

    /* sanity checks */
    Path loadScene = null;
    Path saveScene = null;
    boolean isAscii = false;
    TreeMap<Integer, LinkedList<Path>> mel = new TreeMap<Integer, LinkedList<Path>>();
    {
      /* generate the filename of the Maya scene to load */
      {
        String sname = (String) getSingleParamValue("MayaScene");
        if (sname != null) {
          FileSeq fseq = agenda.getPrimarySource(sname);
          if (fseq == null)
            throw new PipelineException(
                "Somehow the Maya Scene node ("
                    + sname
                    + ") was not one of the source "
                    + "nodes!");

          String suffix = fseq.getFilePattern().getSuffix();
          if (!fseq.isSingle() || (suffix == null) || !(suffix.equals("ma") || suffix.equals("mb")))
            throw new PipelineException(
                "The MayaMEL Action requires that the source node specified by the Maya "
                    + "Scene parameter ("
                    + sname
                    + ") must have a single Maya scene file as "
                    + "its primary file sequence!");

          NodeID snodeID = new NodeID(nodeID, sname);
          loadScene =
              new Path(PackageInfo.sProdPath, snodeID.getWorkingParent() + "/" + fseq.getPath(0));
        }
      }

      /* generate the name of the Maya scene to save */
      {
        Boolean save = (Boolean) getSingleParamValue("SaveResult");
        if ((save != null) && save) {
          FileSeq fseq = agenda.getPrimaryTarget();

          String suffix = fseq.getFilePattern().getSuffix();
          if (!fseq.isSingle() || (suffix == null) || !(suffix.equals("ma") || suffix.equals("mb")))
            throw new PipelineException(
                "The MayaMEL Action requires that the primary target file sequence must "
                    + "be a single Maya scene file if the Save Result parameter is set!");

          isAscii = suffix.equals("ma");
          saveScene =
              new Path(PackageInfo.sProdPath, nodeID.getWorkingParent() + "/" + fseq.getPath(0));
        }
      }

      /* generate the table of MEL script files to evaluate */
      for (String sname : getSourceNames()) {
        Integer order = (Integer) getSourceParamValue(sname, "Order");
        FileSeq fseq = agenda.getPrimarySource(sname);
        if (fseq == null)
          throw new PipelineException(
              "Somehow an per-source Order parameter exists for a node ("
                  + sname
                  + ") "
                  + "which was not one of the source nodes!");

        String suffix = fseq.getFilePattern().getSuffix();
        if (!fseq.isSingle() || (suffix == null) || !suffix.equals("mel"))
          throw new PipelineException(
              "The MayaMEL Action requires that the source node ("
                  + sname
                  + ") with "
                  + "per-source Order parameter must have a single MEL script file as its "
                  + "primary file sequence!");

        NodeID snodeID = new NodeID(nodeID, sname);
        Path script =
            new Path(PackageInfo.sProdPath, snodeID.getWorkingParent() + "/" + fseq.getPath(0));

        LinkedList<Path> scripts = mel.get(order);
        if (scripts == null) {
          scripts = new LinkedList<Path>();
          mel.put(order, scripts);
        }

        scripts.add(script);
      }
    }

    /* create a temporary MEL script file */
    File script = createTemp(agenda, 0755, "mel");
    try {
      FileWriter out = new FileWriter(script);

      /* a workaround needed in "maya -batch" mode */
      out.write("// WORK AROUNDS:\n" + "lightlink -q;\n\n");

      /* rename the current scene as the output scene */
      if (saveScene != null) {
        out.write(
            "// SCENE SETUP\n"
                + "file -rename \""
                + saveScene
                + "\";\n"
                + "file -type \""
                + (isAscii ? "mayaAscii" : "mayaBinary")
                + "\";\n\n");
      }

      /* evaluate the MEL scripts */
      if (!mel.isEmpty()) {
        out.write("// MEL SCRIPTS \n");
        for (LinkedList<Path> scripts : mel.values()) {
          for (Path spath : scripts) out.write("source \"" + spath + "\";\n");
        }
        out.write("\n");
      }

      /* save the file */
      if (saveScene != null) out.write("// SAVE\n" + "file -save;\n");

      out.close();
    } catch (IOException ex) {
      throw new PipelineException(
          "Unable to write temporary MEL script file ("
              + script
              + ") for Job "
              + "("
              + agenda.getJobID()
              + ")!\n"
              + ex.getMessage());
    }

    /* create the process to run the action */
    try {
      ArrayList<String> args = new ArrayList<String>();
      args.add("-batch");
      args.add("-script");
      args.add(script.getPath());

      if (loadScene != null) {
        args.add("-file");
        args.add(loadScene.toOsString());
      }

      String program = "maya";
      if (PackageInfo.sOsType == OsType.Windows) program = (program + ".exe");

      return new SubProcessHeavy(
          agenda.getNodeID().getAuthor(),
          getName() + "-" + agenda.getJobID(),
          program,
          args,
          agenda.getEnvironment(),
          agenda.getWorkingDir(),
          outFile,
          errFile);
    } catch (Exception ex) {
      throw new PipelineException(
          "Unable to generate the SubProcess to perform this Action!\n" + ex.getMessage());
    }
  }
Exemple #4
0
  public static LinkedList<edge> importer(MatlabProxy proxy)
      throws IOException, MatlabConnectionException, MatlabInvocationException {

    Scanner sFile;
    edge entry;
    LinkedList<edge> tie = new LinkedList<edge>();
    Long k, p;

    try {
      sFile =
          new Scanner(new File("/Users/richarddavies/NetBeansProjects/typ_MatlabGraph/edges.dat"));

      System.out.println(sFile.nextLine());

      while (sFile.hasNext()) {

        String edge = sFile.nextLine();
        // System.out.println(edge);

        Scanner edgeScan = new Scanner(edge);
        edgeScan.useDelimiter(",");

        while (edgeScan.hasNext()) {

          k = edgeScan.nextLong();
          System.out.print(k + " ");

          String ident_k = String.valueOf(k);
          String rot_Id_k = rot13.encrypt(ident_k);
          Long rot_k = Long.parseLong(rot_Id_k);

          p = edgeScan.nextLong();
          System.out.print(p);

          String ident_p = String.valueOf(p);
          String rot_Id_p = rot13.encrypt(ident_p);
          Long rot_p = Long.parseLong(rot_Id_p);

          // System.out.println(rot_k+" : "+rot_p);
          entry = new edge(k, p);

          int n = search.search(k);
          int m = search.search(p);
          System.out.print(
              " : "
                  + Typ_MatlabGraph.people.get(n).idProf
                  + " "
                  + Typ_MatlabGraph.people.get(m).idProf);
          System.out.println("");
          n++;
          m++;

          proxy.eval("adjMatrix(" + n + "," + m + ") = 1");

          tie.add(entry);
        }
      }

    } catch (IOException ex) {

      System.out.println("(No System File profile.txt)" + ex);
    }

    return tie;
  }