All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.gwdg.metadataqa.marc.definition.controlpositions.Control008Positions Maven / Gradle / Ivy

package de.gwdg.metadataqa.marc.definition.controlpositions;

import de.gwdg.metadataqa.marc.definition.structure.ControlfieldPositionDefinition;
import de.gwdg.metadataqa.marc.definition.controlpositions.tag008.*;
import de.gwdg.metadataqa.marc.definition.controltype.Control008Type;

import java.util.*;

public class Control008Positions extends ControlfieldPositionList {

  private static Control008Positions uniqueInstance;

  private Control008Positions() {
    initialize();
    index();
  }

  public static Control008Positions getInstance() {
    if (uniqueInstance == null)
      uniqueInstance = new Control008Positions();
    return uniqueInstance;
  }

  private void initialize() {

    positions.put(
      Control008Type.ALL_MATERIALS.getValue(),
      Arrays.asList(
        Tag008all00.getInstance(),
        Tag008all06.getInstance(),
        Tag008all07.getInstance(),
        Tag008all11.getInstance(),
        Tag008all15.getInstance(),
        Tag008all35.getInstance(),
        Tag008all38.getInstance(),
        Tag008all39.getInstance()
      )
    );
    positions.put(
      Control008Type.BOOKS.getValue(),
      Arrays.asList(
        Tag008book18.getInstance(),
        Tag008book22.getInstance(),
        Tag008book23.getInstance(),
        Tag008book24.getInstance(),
        Tag008book28.getInstance(),
        Tag008book29.getInstance(),
        Tag008book30.getInstance(),
        Tag008book31.getInstance(),
        // new ControlSubfield("undefined", 32, 33),
        Tag008book33.getInstance(),
        Tag008book34.getInstance()
      )
    );
    positions.put(
      Control008Type.COMPUTER_FILES.getValue(),
      Arrays.asList(
        // new ControlSubfield("undefined", 18, 21),
        Tag008computer22.getInstance(),
        Tag008computer23.getInstance(),
        // new ControlSubfield("undefined", 24, 25),
        Tag008computer26.getInstance(),
        // new ControlSubfield("undefined", 27, 28),
        Tag008computer28.getInstance()
        // new ControlSubfield("undefined", 29, 35)
      )
    );
    positions.put(Control008Type.MAPS.getValue(),
      Arrays.asList(
        Tag008map18.getInstance(),
        Tag008map22.getInstance(),
        // new ControlSubfield("undefined", 24, 25),
        Tag008map25.getInstance(),
        // new ControlSubfield("undefined", 26, 28),
        Tag008map28.getInstance(),
        Tag008map29.getInstance(),
        // new ControlSubfield("undefined", 30, 31),
        Tag008map31.getInstance(),
        // new ControlSubfield("undefined", 32, 33)
        Tag008map33.getInstance()
      )
    );
    positions.put(
      Control008Type.MUSIC.getValue(),
      Arrays.asList(
        Tag008music18.getInstance(),
        Tag008music20.getInstance(),
        Tag008music21.getInstance(),
        Tag008music22.getInstance(),
        Tag008music23.getInstance(),
        Tag008music24.getInstance(),
        Tag008music30.getInstance(),
        // new ControlSubfield("Undefined", 32, 33),
        Tag008music33.getInstance()
        // new ControlSubfield("Undefined", 34, 35)
      )
    );
    positions.put(
      Control008Type.CONTINUING_RESOURCES.getValue(),
      Arrays.asList(
        Tag008continuing18.getInstance(),
        Tag008continuing19.getInstance(),
        // new ControlSubfield("Undefined", 20, 21),
        Tag008continuing21.getInstance(),
        Tag008continuing22.getInstance(),
        Tag008continuing23.getInstance(),
        Tag008continuing24.getInstance(),
        Tag008continuing25.getInstance(),
        Tag008continuing28.getInstance(),
        Tag008continuing29.getInstance(),
        // new ControlSubfield("Undefined", 30, 33),
        Tag008continuing33.getInstance(),
        Tag008continuing34.getInstance()
      )
    );
    positions.put(
      Control008Type.VISUAL_MATERIALS.getValue(),
      Arrays.asList(
        Tag008visual18.getInstance(),
        // new ControlSubfield("Undefined", 21, 22),
        Tag008visual22.getInstance(),
        // new ControlSubfield("Undefined", 23, 28),
        Tag008visual28.getInstance(),
        Tag008visual29.getInstance(),
        // new ControlSubfield("Undefined", 30, 33),
        Tag008visual33.getInstance(),
        Tag008visual34.getInstance()
      ));
    positions.put(
      Control008Type.MIXED_MATERIALS.getValue(),
      Arrays.asList(
        // new ControlSubfield("Undefined", 18, 23),
        Tag008mixed23.getInstance()
        // new ControlSubfield("Undefined", 24, 35),
      )
    );
  }

  public List get(Control008Type category) {
    return positions.get(category.getValue());
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy