Package org.dspace.content

Examples of org.dspace.content.MetadataField


        if (schemaObj == null)
        {
            throw new RegistryImportException("Schema '" + schema + "' is not registered and does not exist.");
        }
       
        MetadataField mf = MetadataField.findByElement(context, schemaObj.getSchemaID(), element, qualifier);
        if (mf != null)
        {
            // Metadata field already exists, skipping it
            return;
        }
       
        // Actually create this metadata field as it doesn't yet exist
        String fieldName = schema + "." + element + "." + qualifier;
        if(qualifier==null)
            fieldName = schema + "." + element;
        log.info("Registering metadata field " + fieldName);
        MetadataField field = new MetadataField();
        field.setSchemaID(schemaObj.getSchemaID());
        field.setElement(element);
        field.setQualifier(qualifier);
        field.setScopeNote(scopeNote);
        field.create(context);
    }
View Full Code Here


        // For each field, we'll check if it exists. If not, we'll create it.
        for(Metadatum md : allMD)
        {
            MetadataSchema mdSchema = null;
            MetadataField mdField = null;
            try
            {
                //Try to access this Schema
                mdSchema = MetadataSchema.find(context, md.schema);
                //If Schema found, try to locate field from database
                if(mdSchema!=null)
                {
                    mdField = MetadataField.findByElement(context, mdSchema.getSchemaID(), md.element, md.qualifier);
                }
            }
            catch(SQLException se)
            {
                //If a SQLException error is thrown, then this field does NOT exist in DB
                //Set field to null, so we know we need to create it
                mdField = null;
            }

            // If our Schema was not found, we have a problem
            // We cannot easily create a Schema automatically -- as we don't know its Namespace
            if(mdSchema==null)
            {
                throw new PackageValidationException("Unknown Metadata Schema encountered (" + md.schema + ") when attempting to ingest an Item.  You will need to create this Metadata Schema in DSpace Schema Registry before the Item can be ingested.");
            }

            // If our Metadata Field is null, we will attempt to create it in the proper Schema
            if(mdField==null)
            {
                try
                {
                    //initialize field (but don't set a scope note) & create it
                    mdField = new MetadataField(mdSchema, md.element, md.qualifier, null);
                    // NOTE: Only Adminstrators can create Metadata Fields -- create() will throw an AuthorizationException for non-Admins
                    mdField.create(context);
                    //log that field was created
                    log.info("Located a missing metadata field (schema:'" + mdSchema.getName() +"', element:'"+ md.element +"', qualifier:'"+ md.qualifier +"') while ingesting Item.  This missing field has been created in the DSpace Metadata Field Registry.");
                }
                catch(NonUniqueMetadataException ne)
                {   // This exception should never happen, as we already checked to make sure the field doesn't exist.
View Full Code Here

                    {
                        System.err.println("DIM Warning, qualifier is empty string: "+
                              " schema=\""+schema+"\", element=\""+element+"\", qualifier=\""+qualifier+"\"");
                        qualifier = null;
                    }
                    MetadataField mf = MetadataField.findByElement(context,
                                  ms.getSchemaID(), element, qualifier);
                    if (mf == null)
                    {
                        System.err.println("DIM Error, Cannot find metadata field for: schema=\"" + schema +
                                "\", element=\"" + element + "\", qualifier=\"" + qualifier + "\"");
View Full Code Here

                {
                    lang = null;
                }
            }

            MetadataField field = MetadataField.find(context, dcTypeID);
            MetadataSchema schema = MetadataSchema.find(context, field
                    .getSchemaID());
            item.addMetadata(schema.getName(), field.getElement(), field
                    .getQualifier(), lang, value);
        }

        item.update();
View Full Code Here

        try
        {
            context.turnOffAuthorisationSystem();
            boolean create = false;
            MetadataSchema mdschema = MetadataSchema.find(context, schema);
            MetadataField mdfield = null;
            if (mdschema == null)
            {
                mdschema = new MetadataSchema(
                        SubmissionLookupService.SL_NAMESPACE_PREFIX + schema,
                        schema);
                mdschema.create(context);
                create = true;
            }
            else
            {
                mdfield = MetadataField.findByElement(context,
                        mdschema.getSchemaID(), element, qualifier);
            }

            if (mdfield == null)
            {
                mdfield = new MetadataField(mdschema, element, qualifier,
                        "Campo utilizzato per la cache del provider submission-lookup: "
                                + schema);
                mdfield.create(context);
                create = true;
            }
            if (create)
            {
                context.commit();
View Full Code Here

                          + dtom.schema + "' was not found in the registry; found on item " + dirname);
                      }
                      else
                      {
                        int schemaID = foundSchema.getSchemaID();
                        MetadataField foundField = MetadataField.findByElement(context, schemaID, dtom.element, dtom.qualifier);
                       
                        if (foundField == null)
                        {
                          ItemUpdate.pr("ERROR: Metadata field: '" + dtom.schema + "." + dtom.element + "."
                              + dtom.qualifier + "' not found in registry; found on item " + dirname);
View Full Code Here

   
    String fieldID = request.getParameter("field");
    String value = request.getParameter("value");
    String language = request.getParameter("language");
   
    MetadataField field = MetadataField.find(context,Integer.valueOf(fieldID));
    MetadataSchema schema = MetadataSchema.find(context,field.getSchemaID());
   
    item.addMetadata(schema.getName(), field.getElement(), field.getQualifier(), language, value);
   
    item.update();
    context.commit();
   
    result.setContinue(true);
View Full Code Here

            String value = request.getParameter("value_" + i);
            String lang = request.getParameter("lang_" + i);

            if ((dcTypeID != -1) && (value != null) && !value.equals(""))
            {
                MetadataField field = MetadataField.find(context,dcTypeID);
                MetadataSchema schema = MetadataSchema.find(context,field.getSchemaID());
                item.addMetadata(schema.getName(),field.getElement(), field.getQualifier(), lang, value);
            }
        }

        item.update();
View Full Code Here

            }

            try
            {
                // Update the metadata for a DC type
                MetadataField dc = MetadataField.find(context, UIUtil
                        .getIntParameter(request, "dc_type_id"));
            dc.setElement(request.getParameter("element"));

            String qual = request.getParameter("qualifier");
            if (qual.equals(""))
            {
                qual = null;
            }

            dc.setQualifier(qual);
            dc.setScopeNote(request.getParameter("scope_note"));
                dc.update(context);
                showTypes(context, request, response, schemaID);
            context.complete();
        }
            catch (NonUniqueMetadataException e)
            {
                context.abort();
                log.error(e);
            }
        }
        else if (button.equals("submit_add"))
        {

            // The sanity check will update the request error string if needed
            if (!sanityCheck(request, labels))
            {
                showTypes(context, request, response, schemaID);
                context.abort();
                return;
            }

            // Add a new DC type - simply add to the list, and let the user
            // edit with the main form
            try
            {
                MetadataField dc = new MetadataField();
                dc.setSchemaID(schemaID);
                dc.setElement(request.getParameter("element"));

                String qual = request.getParameter("qualifier");
                if (qual.equals(""))
                {
                    qual = null;
                }

                dc.setQualifier(qual);
                dc.setScopeNote(request.getParameter("scope_note"));
                dc.create(context);
                showTypes(context, request, response, schemaID);
            context.complete();
        }
            catch (NonUniqueMetadataException e)
            {
                // Record the exception as a warning
                log.warn(e);

                // Show the page again but with an error message to inform the
                // user that the metadata field was not created and why
                request.setAttribute("error", labels.getString(clazz
                        + ".createfailed"));
                showTypes(context, request, response, schemaID);
                context.abort();
            }
        }
        else if (button.equals("submit_delete"))
        {
            // Start delete process - go through verification step
            MetadataField dc = MetadataField.find(context, UIUtil
                    .getIntParameter(request, "dc_type_id"));
            request.setAttribute("type", dc);
            JSPManager.showJSP(request, response,
                    "/dspace-admin/confirm-delete-mdfield.jsp");
        }
        else if (button.equals("submit_confirm_delete"))
        {
            // User confirms deletion of type
            MetadataField dc = MetadataField.find(context, UIUtil
                    .getIntParameter(request, "dc_type_id"));
            try
            {
                dc.delete(context);
                request.setAttribute("failed", Boolean.FALSE);
                showTypes(context, request, response, schemaID);
            } catch (Exception e)
            {
                request.setAttribute("type", dc);
                request.setAttribute("failed", true);
                JSPManager.showJSP(request, response,
                        "/dspace-admin/confirm-delete-mdfield.jsp");
            }
            context.complete();
        }
        else if (button.equals("submit_move"))
        {
            // User requests that one or more metadata elements be moved to a
            // new metadata schema. Note that we change the default schema ID to
            // be the destination schema.
            try
            {
                schemaID = Integer.parseInt(request
                        .getParameter("dc_dest_schema_id"));
                String[] param = request.getParameterValues("dc_field_id");
                if (schemaID == 0 || param == null)
                {
                    request.setAttribute("error", labels.getString(clazz
                            + ".movearguments"));
                    showTypes(context, request, response, schemaID);
                    context.abort();
                }
                else
                {
                    for (int ii = 0; ii < param.length; ii++)
                    {
                        int fieldID = Integer.parseInt(param[ii]);
                        MetadataField field = MetadataField.find(context,
                                fieldID);
                        field.setSchemaID(schemaID);
                        field.update(context);

                    }
            context.complete();
                    
                    // Send the user to the metadata schema in which they just moved
View Full Code Here

    String idsString = parameters.getParameter("fieldIDs", null);
   
    ArrayList<MetadataField> fields = new ArrayList<MetadataField>();
    for (String id : idsString.split(","))
    {
      MetadataField field = MetadataField.find(context,Integer.valueOf(id));
      fields.add(field);
    }
   
    // DIVISION: metadata-field-move
      Division moved = body.addInteractiveDivision("metadata-field-move",contextPath+"/admin/metadata-registry",Division.METHOD_POST,"primary administrative metadata-registry");
      moved.setHead(T_head1);
      moved.addPara(T_para1);
     
      Table table = moved.addTable("metadata-field-move",fields.size() + 1, 3);
        Row header = table.addRow(Row.ROLE_HEADER);
        header.addCell().addContent(T_column1);
        header.addCell().addContent(T_column2);
        header.addCell().addContent(T_column3);
     
      for (MetadataField field : fields)
      {
        String fieldID = String.valueOf(field.getFieldID());
      String fieldEelement = field.getElement();
      String fieldQualifier = field.getQualifier();
     
      MetadataSchema schema = MetadataSchema.find(context, field.getSchemaID());
      String schemaName = schema.getName();
     
      StringBuilder fieldName = new StringBuilder()
                                            .append(schemaName)
                                            .append(".")
                                            .append(fieldEelement);

      if (fieldQualifier != null && fieldQualifier.length() > 0)
            {
        fieldName.append(".").append(fieldQualifier);
            }
       
      String fieldScopeNote = field.getScopeNote();
       
        Row row = table.addRow();
        row.addCell().addContent(fieldID);
          row.addCell().addContent(fieldName.toString());
          row.addCell().addContent(fieldScopeNote);
View Full Code Here

TOP

Related Classes of org.dspace.content.MetadataField

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.