Package gov.lanl.adore.djatoka.util

Examples of gov.lanl.adore.djatoka.util.ImageRecord


     * @return An image record
     */
    @Override
    public ImageRecord getImageRecord(final String aRequest) throws ResolverException {
        final String decodedRequest = decode(aRequest);
        ImageRecord image;

        // Check to see if the image is resolvable from a remote source
        if (isResolvableURI(decodedRequest)) {
            String referent;

View Full Code Here


    private boolean isResolvableURI(final String aReferentID) {
        return aReferentID.startsWith("http://") || aReferentID.startsWith("file://");
    }

    private ImageRecord getCachedImage(final String aReferentID) {
        ImageRecord image = null;

        if (isResolvableURI(aReferentID)) {
            return image;
        }

        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Checking in Pairtree file system for: {}", aReferentID);
        }

        try {
            final PairtreeRoot pairtree = new PairtreeRoot(myJP2Dir);
            final PairtreeObject dir = pairtree.getObject(aReferentID);
            final String filename = PairtreeUtils.encodeID(aReferentID);
            final File file = new File(dir, filename);

            if (file.exists()) {
                image = new ImageRecord();
                image.setIdentifier(aReferentID);
                image.setImageFile(file.getAbsolutePath());

                if (LOGGER.isDebugEnabled()) {
                    LOGGER.debug("JP2 found in Pairtree cache: {}", file.getAbsolutePath());
                }
            } else if (LOGGER.isDebugEnabled()) {
View Full Code Here

        int status = HttpServletResponse.SC_OK;
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        try {
            baos = new ByteArrayOutputStream();
            IExtract jp2 = new KduExtractExe();
            ImageRecord r = ReferentManager.getImageRecord(contextObject.getReferent());
            String[] xml = jp2.getXMLBox(r);
            StringBuffer sb = new StringBuffer("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
            sb.append("<jp2:JP2XML ");
            sb.append("xmlns:jp2=\"http://library.lanl.gov/2008-11/aDORe/JP2XML/\" ");
            sb.append("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"  ");
View Full Code Here

        return image;
    }

    private ImageRecord getRemoteImage(final String aReferent, final String aURL) {
        ImageRecord image = null;

        try {
            final URI uri = new URI(aURL);
            File imageFile;

            // Check to see if it's already in the processing queue
            if (myMigrator.getProcessingList().contains(aReferent)) {
                Thread.sleep(1000);
                int index = 0;

                while (myMigrator.getProcessingList().contains(aReferent) && index < (5 * 60)) {
                    Thread.sleep(1000);
                    index++;
                }

                if (myRemoteImages.containsKey(aReferent)) {
                    if (LOGGER.isDebugEnabled()) {
                        LOGGER.debug("Retrieving {} from remote images cache", aReferent);
                    }

                    return myRemoteImages.get(aReferent);
                }
            }

            imageFile = myMigrator.convert(aReferent, uri);
            image = new ImageRecord(aReferent, imageFile.getAbsolutePath());

            if (imageFile.length() > 0) {
                myRemoteImages.put(aReferent, image);
            } else {
                throw new ResolverException("An error occurred processing file: " + uri.toURL());
View Full Code Here

        String responseFormat = "application/jp2";;
        int status = HttpServletResponse.SC_OK;
        byte[] b = null;
        try {
            ImageRecord r = ReferentManager.getImageRecord(contextObject.getReferent());
            if (r != null && r.getImageFile() != null) {
                b = IOUtils.getBytesFromFile(new File(r.getImageFile()));
            } else if (r != null && r.getObject() != null) {
                if (r.getObject() instanceof byte[]) {
                    b = (byte[]) r.getObject();
                } else if (r.getObject() instanceof InputStream) {
                    b = IOUtils.getByteArray((InputStream) r.getObject());
                }
            }
            if (b == null) {
                throw new Exception("Unable to resolve resource");
            }
View Full Code Here

TOP

Related Classes of gov.lanl.adore.djatoka.util.ImageRecord

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.