Package org.fcrepo.server.storage.types

Examples of org.fcrepo.server.storage.types.Disseminator


        Iterator<String> dissIdIter = obj.disseminatorIdIterator();
        while (dissIdIter.hasNext()) {
            String did = dissIdIter.next();
            Iterator<Disseminator> dissIter = obj.disseminators(did).iterator();
            while (dissIter.hasNext()) {
                Disseminator diss =
                        DOTranslationUtility.setDisseminatorDefaults(dissIter
                                .next());
                writer.print("<");
                writer.print(METS.prefix);
                writer.print(":structMap ID=\"");
View Full Code Here


    private void appendDisseminators(DigitalObject obj, PrintWriter writer)
            throws ObjectIntegrityException {
        Iterator<String> dissIdIter = obj.disseminatorIdIterator();
        while (dissIdIter.hasNext()) {
            String did = dissIdIter.next();
            Disseminator diss =
                    DOTranslationUtility.setDisseminatorDefaults(obj
                            .disseminators(did).get(0));
            writer.print("<");
            writer.print(METS.prefix);
            writer.print(":behaviorSec ID=\"");
View Full Code Here

        if (m_format.equals(METS_EXT1_0)) {
            // DISSEMINATORS... put disseminators in the instantiated digital
            // object
            Iterator<Disseminator> dissemIter = m_dissems.values().iterator();
            while (dissemIter.hasNext()) {
                Disseminator diss = dissemIter.next();
                m_obj.disseminators(diss.dissID).add(diss);
            }
        }

    }
View Full Code Here

                if (bmId == null || bmId.equals("")) {
                    throw new SAXException("structMap with TYPE "
                            + "fedora:dsBindingMap must specify a non-empty "
                            + "ID attribute.");
                } else {
                    Disseminator diss = new Disseminator();
                    diss.dsBindMapID = bmId;
                    m_dissems.put(bmId, diss);
                    m_diss = diss;
                    m_diss.dsBindMap = new DSBindingMap();
                    m_diss.dsBindMap.dsBindMapID = bmId;
                    m_indiv = false; // flag we're not looking at inner part yet
                }
            } else {
                throw new SAXException("StructMap must have TYPE fedora:dsBindingMap");
            }
        } else if (localName.equals("div")) {
            if (m_indiv) {
                // inner part of structmap
                DSBinding binding = new DSBinding();
                if (m_diss.dsBindMap.dsBindings == null) {
                    // none yet.. create array of size one
                    DSBinding[] bindings = new DSBinding[1];
                    m_diss.dsBindMap.dsBindings = bindings;
                    m_diss.dsBindMap.dsBindings[0] = binding;
                } else {
                    // need to expand the array size by one,
                    // and do an array copy.
                    int curSize = m_diss.dsBindMap.dsBindings.length;
                    DSBinding[] oldArray = m_diss.dsBindMap.dsBindings;
                    DSBinding[] newArray = new DSBinding[curSize + 1];
                    for (int i = 0; i < curSize; i++) {
                        newArray[i] = oldArray[i];
                    }
                    newArray[curSize] = binding;
                    m_diss.dsBindMap.dsBindings = newArray;
                }
                // now populate 'binding' values...we'll have
                // everything at this point except datastreamID...
                // that comes as a child: <fptr FILEID="DS2"/>
                binding.bindKeyName = grab(a, METS.uri, "TYPE");
                binding.bindLabel = grab(a, METS.uri, "LABEL");
                binding.seqNo = grab(a, METS.uri, "ORDER");
            } else {
                m_indiv = true;
                // first (outer div) part of structmap
                m_diss.dsBindMap.dsBindMechanismPID = grab(a, METS.uri, "TYPE");
                m_diss.dsBindMap.dsBindMapLabel = grab(a, METS.uri, "LABEL");
            }
        } else if (localName.equals("fptr")) {
            // assume we're inside the inner div... that's the
            // only place the fptr element is valid.
            DSBinding binding =
                    m_diss.dsBindMap.dsBindings[m_diss.dsBindMap.dsBindings.length - 1];
            binding.datastreamID = grab(a, METS.uri, "FILEID");
        } else if (localName.equals("behaviorSec")) {
            // looks like we're in a disseminator... it should be in the
            // hash by now because we've already gone through structmaps
            // ...keyed by structmap id... remember the id (group id)
            // so we can put it in when parsing serviceBinding
            m_dissemId = grab(a, METS.uri, "ID");
            m_dissemState = grab(a, METS.uri, "STATUS");
        } else if (localName.equals("serviceBinding")) {
            // remember the structId so we can grab the right dissem
            // when parsing children
            m_structId = grab(a, METS.uri, "STRUCTID");
            // grab the disseminator associated with the provided structId
            Disseminator dissem = m_dissems.get(m_structId);
            // plug known items in..
            dissem.dissID = m_dissemId;
            dissem.dissState = m_dissemState;
            // then grab the new stuff for the dissem for this element, and
            // put it in.
            dissem.dissVersionID = grab(a, METS.uri, "ID");
            dissem.bDefID = grab(a, METS.uri, "BTYPE");
            dissem.dissCreateDT =
                    DateUtility
                            .convertStringToDate(grab(a, METS.uri, "CREATED"));
            dissem.dissLabel = grab(a, METS.uri, "LABEL");
        } else if (localName.equals("interfaceMD")) {
            Disseminator dissem = m_dissems.get(m_structId);
        } else if (localName.equals("serviceBindMD")) {
            Disseminator dissem = m_dissems.get(m_structId);
            dissem.sDepID = grab(a, m_xlink.uri, "href");
        }
    }
View Full Code Here

                m_dissVersionable = true;
            } else {
                m_dissVersionable = new Boolean(versionable).booleanValue();
            }
        } else if (localName.equals("disseminatorVersion")) {
            m_diss = new Disseminator();
            m_diss.dissID = m_dissID;
            m_diss.bDefID = m_sDefID;
            m_diss.dissState = m_dissState;
            String versionable = grab(a, FOXML.uri, "VERSIONABLE");
            // disseminator versioning is defaulted to true
View Full Code Here

        while (dissIdIter.hasNext()) {
            String did = dissIdIter.next();
            List<Disseminator> dissList = obj.disseminators(did);

            for (int i = 0; i < dissList.size(); i++) {
                Disseminator vdiss =
                        DOTranslationUtility
                                .setDisseminatorDefaults(obj
                                        .disseminators(did).get(i));
                // insert the disseminator elements common to all versions.
                if (i == 0) {
View Full Code Here

        dmc.DSChecksum = DigestUtils.md5Hex(content);
        return dmc;
    }

    protected static Disseminator createDisseminator(String id, int numBindings) {
        Disseminator diss = new Disseminator();
        diss.dissID = id;
        diss.dissVersionID = id + ".0";
        diss.bDefID = TEST_PID + "bdef";
        diss.sDepID = TEST_PID + "bmech";
        diss.dsBindMap = new DSBindingMap();
View Full Code Here

    protected void doTestTwoDisseminators() {
        DigitalObject obj = createTestObject(FEDORA_OBJECT_3_0);

        final String dissID1 = "DISS1";
        Disseminator diss1 = createDisseminator(dissID1, 1);

        final String dissID2 = "DISS2";
        Disseminator diss2 = createDisseminator(dissID2, 1);

        obj.disseminators(dissID1).add(diss1);
        obj.disseminators(dissID2).add(diss2);

        DigitalObject result = doDeserializeOrFail(obj);
View Full Code Here

TOP

Related Classes of org.fcrepo.server.storage.types.Disseminator

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.