예제 #1
0
 private int getMetadataSchemaID(DCValue dcv) throws SQLException {
   int schemaID;
   MetadataSchema schema = MetadataSchema.find(ourContext, dcv.schema);
   if (schema == null) {
     schemaID = MetadataSchema.DC_SCHEMA_ID;
   } else {
     schemaID = schema.getSchemaID();
   }
   return schemaID;
 }
예제 #2
0
  @Override
  public MetadataField create(
      Context context,
      MetadataSchema metadataSchema,
      String element,
      String qualifier,
      String scopeNote)
      throws AuthorizeException, SQLException, NonUniqueMetadataException {
    // Check authorisation: Only admins may create DC types
    if (!authorizeService.isAdmin(context)) {
      throw new AuthorizeException("Only administrators may modify the metadata registry");
    }

    // Ensure the element and qualifier are unique within a given schema.
    if (hasElement(context, -1, metadataSchema, element, qualifier)) {
      throw new NonUniqueMetadataException(
          "Please make "
              + element
              + "."
              + qualifier
              + " unique within schema #"
              + metadataSchema.getSchemaID());
    }

    // Create a table row and update it with the values
    MetadataField metadataField = new MetadataField();
    metadataField.setElement(element);
    metadataField.setQualifier(qualifier);
    metadataField.setScopeNote(scopeNote);
    metadataField.setMetadataSchema(metadataSchema);
    metadataField = metadataFieldDAO.create(context, metadataField);
    metadataFieldDAO.save(context, metadataField);

    log.info(
        LogManager.getHeader(
            context, "create_metadata_field", "metadata_field_id=" + metadataField.getFieldID()));
    return metadataField;
  }
예제 #3
0
 /**
  * Full constructor for new metadata field elements.
  *
  * @param schema schema to which the field belongs
  * @param element element of the field
  * @param qualifier qualifier of the field
  * @param scopeNote scope note of the field
  */
 public MetadataField(MetadataSchema schema, String element, String qualifier, String scopeNote) {
   this.schemaID = schema.getSchemaID();
   this.element = element;
   this.qualifier = qualifier;
   this.scopeNote = scopeNote;
 }
예제 #4
0
 /**
  * Constructor creating a field within a schema.
  *
  * @param schema schema to which the field belongs
  */
 public MetadataField(MetadataSchema schema) {
   this.schemaID = schema.getSchemaID();
 }