Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.apache.stanbol.enhancer.engines.xmpextractor;
 
 import java.util.Map;
 
 
 
 @Component(immediate = true, metatype = true, inherit = true)
     @Property(name=., value="xmpextractor")
 })
         implements EnhancementEngineServiceProperties {
     private static final Logger LOG = LoggerFactory.getLogger(XmpExtractorEngine.class);
     
     
     @Reference
     Parser parser;
  
    
The default value for the Execution of this Engine. Currently set to org.apache.stanbol.enhancer.servicesapi.ServiceProperties.ORDERING_PRE_PROCESSING
 
     public static final Integer defaultOrder = ;
 
 
     @Override
     public Map<String,ObjectgetServiceProperties() {
         return Collections.unmodifiableMap(Collections.singletonMap(, (Object));
     }
     
     @Override
     public int canEnhance(ContentItem cithrows EngineException {
         .info("MimeType: {}"ci.getMimeType());
         if (isSupported(ci.getMimeType())) {
             return ;
         }
         return ;
     }
     
     @Override
     public void computeEnhancements(ContentItem cithrows EngineException {
     	InputStream in = ci.getBlob().getStream();
     	XMPPacketScanner scanner = new XMPPacketScanner();
     	ByteArrayOutputStream baos = new ByteArrayOutputStream();
     	try {
 			scanner.parse(inbaos);
 		} catch (IOException e) {
 			throw new EngineException(e);
 		}
     	byte[] bytes = baos.toByteArray();
     	if (bytes.length > 0) {
 	        MGraph model = new IndexedMGraph();
 			.parse(modelnew ByteArrayInputStream(bytes), "application/rdf+xml");
 	        GraphNode gn = new GraphNode(
 					new UriRef("http://relative-uri.fake/"), model);
 			gn.replaceWith(ci.getUri());
 	        ci.getLock().writeLock().lock();
 	        try { 
	            .info("Model: {}",model);
	            ci.getMetadata().addAll(model);
	        } finally {
	            ci.getLock().writeLock().unlock();
	        }
    	}
    }
    
    private boolean isSupported(String mimeType) {
    	if (mimeType.startsWith("text/")) {
    		return false//assuming text types cannot contain XMP
    	} else {
    		return true// As there isn't a list of media types that can contain XMP
    	}
    }
    
    
New to GrepCode? Check out our FAQ X