Example #1
0
 public List<SelectItem> getOperandsForID() {
   List<SelectItem> answer = new ArrayList<SelectItem>();
   SelectItem and = new SelectItem("", Helper.getTranslation("IS"));
   SelectItem not = new SelectItem("-", Helper.getTranslation("IS NOT"));
   answer.add(and);
   answer.add(not);
   return answer;
 }
 /**
  * Creates a fictitious MetadataType for the given field of the given metadata type, assuming that
  * the latter is a person. The method is called from the constructor and thus should not be
  * overloaded.
  *
  * @param type a metadata type which represents a person
  * @param field a field of the person record
  * @return a fictitious MetadataGroupType with the person’s subfields
  */
 private static final MetadataType getMetadataTypeFor(MetadataType type, Field field) {
   MetadataType result = new MetadataType();
   result.setName(type.getName() + '.' + field.toString());
   if (type.getNum() != null) {
     result.setNum(type.getNum());
   }
   result.setAllLanguages(Helper.getAllStrings(field.getResourceKey()));
   result.setIsPerson(false);
   result.setIdentifier(field.isIdentifier());
   return result;
 }
  /**
   * @throws IOException
   * @throws WrongImportFileException
   * @throws TypeNotAllowedForParentException
   * @throws TypeNotAllowedAsChildException
   * @throws MetadataTypeNotAllowedException
   * @throws WriteException
   */
  protected void Parsen(BufferedReader reader, Prozess inProzess)
      throws IOException, WrongImportFileException, TypeNotAllowedForParentException,
          TypeNotAllowedAsChildException, MetadataTypeNotAllowedException, WriteException {
    myLogger.debug("ParsenZentralblatt() - Start");
    this.myPrefs = inProzess.getRegelsatz().getPreferences();
    String prozessID = String.valueOf(inProzess.getId().intValue());
    String line;
    this.Trennzeichen = ":";
    boolean istAbsatz = false;
    boolean istErsterTitel = true;
    LinkedList<DocStruct> listArtikel = new LinkedList<DocStruct>();

    /*
     * -------------------------------- Vorbereitung der Dokumentenstruktur --------------------------------
     */
    DigitalDocument dd = new DigitalDocument();
    DocStructType dst = this.myPrefs.getDocStrctTypeByName("Periodical");
    DocStruct dsPeriodical = dd.createDocStruct(dst);
    dst = this.myPrefs.getDocStrctTypeByName("PeriodicalVolume");
    DocStruct dsPeriodicalVolume = dd.createDocStruct(dst);
    dsPeriodical.addChild(dsPeriodicalVolume);

    /*
     * -------------------------------- alle Zeilen durchlaufen --------------------------------
     */
    while ((line = reader.readLine()) != null) {
      // myLogger.debug(line);

      /*
       * -------------------------------- wenn die Zeile leer ist, ist es das Ende eines Absatzes --------------------------------
       */
      if (line.length() == 0) {
        istAbsatz = false;
        /* wenn die Zeile nicht leer ist, den Inhalt prüfen */
      } else {

        /* prüfen ob der String korrekte xml-Zeichen enthält */
        String xmlTauglich = xmlTauglichkeitPruefen(line);
        if (xmlTauglich.length() > 0) {
          throw new WrongImportFileException(
              "Parsingfehler (nicht druckbares Zeichen) der Importdatei in der Zeile <br/>"
                  + xmlTauglich);
        }

        /* wenn es gerade ein neuer Absatz ist, diesen als neuen Artikel in die Liste übernehmen */
        if (!istAbsatz) {
          DocStructType dstLocal = this.myPrefs.getDocStrctTypeByName("Article");
          DocStruct ds = dd.createDocStruct(dstLocal);
          listArtikel.add(ds);
          // myLogger.debug("---------------          neuer Artikel          ----------------");
          istAbsatz = true;
          istErsterTitel = true;
        }

        /* Position des Trennzeichens ermitteln */
        int posTrennzeichen = line.indexOf(this.Trennzeichen);
        /* wenn kein Trennzeichen vorhanden, Parsingfehler */
        if (posTrennzeichen == -1) {
          myLogger.error(
              "Import() - Parsingfehler (kein Doppelpunkt) der Importdatei in der Zeile <br/>"
                  + HtmlTagsMaskieren(line));
          throw new WrongImportFileException(
              "Parsingfehler (kein Doppelpunkt) der Importdatei in der Zeile <br/>"
                  + HtmlTagsMaskieren(line));
        } else {
          String myLeft = line.substring(0, posTrennzeichen).trim();
          String myRight = line.substring(posTrennzeichen + 1, line.length()).trim();
          ParsenArtikel(listArtikel.getLast(), myLeft, myRight, istErsterTitel);

          /* wenn es ein Titel war, ist der nächste nicht mehr der erste Titel */
          if (myLeft.equals("TI")) {
            istErsterTitel = false;
          }

          /* wenn es gerade der Zeitschriftenname ist, die Zeitschrift benennen */
          if (myLeft.equals("J")) {
            ParsenAllgemein(dsPeriodical, myLeft, myRight);
          }

          /* wenn es gerade eine Jahresangabe ist, dann für den aktuellen Band */
          if (myLeft.equals("Y")) {
            ParsenAllgemein(dsPeriodicalVolume, myLeft, myRight);
          }

          /* wenn es gerade eine Jahresangabe ist, dann für den aktuellen Band */
          if (myLeft.equals("V")) {
            ParsenAllgemein(dsPeriodicalVolume, myLeft, myRight);
          }

          /*
           * wenn es gerade die Heftnummer ist, dann jetzt dem richtigen Heft zuordnen und dieses ggf. noch vorher anlegen
           */
          if (myLeft.equals("I")) {
            DocStruct dsPeriodicalIssue = ParsenHeftzuordnung(dsPeriodicalVolume, myRight, dd);
            dsPeriodicalIssue.addChild(listArtikel.getLast());
          }
        }
      }
    }

    /*
     * -------------------------------- physischer Baum (Seiten) --------------------------------
     */
    dst = this.myPrefs.getDocStrctTypeByName("BoundBook");
    DocStruct dsBoundBook = dd.createDocStruct(dst);

    /*
     * -------------------------------- jetzt die Gesamtstruktur bauen und in xml schreiben --------------------------------
     */
    // DigitalDocument dd = new DigitalDocument();
    dd.setLogicalDocStruct(dsPeriodical);
    dd.setPhysicalDocStruct(dsBoundBook);
    try {
      Fileformat gdzfile = new XStream(this.myPrefs);
      gdzfile.setDigitalDocument(dd);

      /*
       * -------------------------------- Datei am richtigen Ort speichern --------------------------------
       */
      gdzfile.write(this.help.getGoobiDataDirectory() + prozessID + File.separator + "meta.xml");
    } catch (PreferencesException e) {
      Helper.setFehlerMeldung("Import aborted: ", e.getMessage());
      myLogger.error(e);
    }
    myLogger.debug("ParsenZentralblatt() - Ende");
  }
Example #4
0
  public SearchBean() {
    for (StepStatus s : StepStatus.values()) {
      this.stepstatus.add(s);
    }
    int restriction =
        ((LoginBean) Helper.getManagedBeanValue("#{LoginForm}")).getMaximaleBerechtigung();

    // projects
    String projectFilter = "";

    if (restriction > 2) {
      projectFilter = " projectIsArchived = false ";
    }
    this.projects.add(Helper.getTranslation("notSelected"));

    try {
      List<Project> projektList =
          ProjectManager.getProjects("titel", projectFilter, 0, Integer.MAX_VALUE);
      for (Project p : projektList) {
        this.projects.add(p.getTitel());
      }
    } catch (DAOException e1) {
    }

    this.masterpiecePropertyTitles.add(Helper.getTranslation("notSelected"));
    this.masterpiecePropertyTitles.addAll(PropertyManager.getDistinctMasterpiecePropertyTitles());

    this.templatePropertyTitles.add(Helper.getTranslation("notSelected"));
    this.templatePropertyTitles.addAll(PropertyManager.getDistinctTemplatePropertyTitles());

    this.processPropertyTitles.add(Helper.getTranslation("notSelected"));
    this.processPropertyTitles.addAll(PropertyManager.getDistinctProcessPropertyTitles());

    this.stepTitles.add(Helper.getTranslation("notSelected"));
    stepTitles.addAll(StepManager.getDistinctStepTitles());

    initializeRowList();

    fieldnameList.add(new SelectItem("", Helper.getTranslation("notSelected")));
    fieldnameList.add(new SelectItem("PROCESSID", Helper.getTranslation("id")));
    fieldnameList.add(new SelectItem("PROCESSTITLE", Helper.getTranslation("title")));

    fieldnameList.add(
        new SelectItem("PROCESSPROPERTY", Helper.getTranslation("processProperties")));

    fieldnameList.add(new SelectItem("STEP", Helper.getTranslation("step")));

    fieldnameList.add(new SelectItem("PROJECT", Helper.getTranslation("projects")));
    fieldnameList.add(new SelectItem("TEMPLATE", Helper.getTranslation("templateProperties")));

    fieldnameList.add(new SelectItem("WORKPIECE", Helper.getTranslation("masterpieceProperties")));
    fieldnameList.add(new SelectItem("BATCH", Helper.getTranslation("batch")));
    fieldnameList.add(new SelectItem("METADATA", Helper.getTranslation("metadata")));

    fieldnameList.add(new SelectItem("PROCESSLOG", Helper.getTranslation("processlog")));

    metadataTitles.add(Helper.getTranslation("notSelected"));
    metadataTitles.addAll(MetadataManager.getDistinctMetadataNames());
  }
 /**
  * Returns the display name of the task to show to the user.
  *
  * @see de.sub.goobi.helper.tasks.INameableTask#getDisplayName()
  */
 @Override
 public String getDisplayName() {
   return Helper.getTranslation("ExportDmsTask");
 }