Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * #%L
   * =====================================================
   *   _____                _     ____  _   _       _   _
   *  |_   _|_ __ _   _ ___| |_  / __ \| | | | ___ | | | |
   *    | | | '__| | | / __| __|/ / _` | |_| |/ __|| |_| |
   *    | | | |  | |_| \__ \ |_| | (_| |  _  |\__ \|  _  |
   *    |_| |_|   \__,_|___/\__|\ \__,_|_| |_||___/|_| |_|
   *                             \____/
  * 
  * =====================================================
  * 
  * Hochschule Hannover
  * (University of Applied Sciences and Arts, Hannover)
  * Faculty IV, Dept. of Computer Science
  * Ricklinger Stadtweg 118, 30459 Hannover, Germany
  * 
  * Email: trust@f4-i.fh-hannover.de
  * Website: http://trust.f4.hs-hannover.de/
  * 
  * This file is part of ifmapj, version 2.1.0, implemented by the Trust@HsH
  * research group at the Hochschule Hannover.
  * %%
  * Copyright (C) 2010 - 2014 Trust@HsH
  * %%
  * Licensed 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.
  * #L%
  */
 package de.hshannover.f4.trust.ifmapj.metadata;
 
 
 
 
Factory for Metadata wrapper instances.
 
 public class MetadataWrapper {
 
 	private static final XPathFactory XPATH_FACTORY = XPathFactory.newInstance();
 
 	private static final TransformerFactory TRANSFORMER_FACTORY =
 			TransformerFactory.newInstance();

Default namespace context which uses the prefixes 'meta' and 'ifmap' as specified in TNC IF-MAP Binding for SOAP version 2.2.
 
 	public static final NamespaceContext DEFAULT_NAMESPACE_CONTEXT = new NamespaceContext() {
 
 		public Iterator getPrefixes(String namespaceURI) {
 			return Arrays.asList(
 						.iterator();
 		}
 
 		public String getPrefix(String namespaceURI) {
 			if (namespaceURI.equals(.)) {
 			} else if (namespaceURI.equals(.)) {
 			} else {
 				return null;
 			}
 		}
 
 		public String getNamespaceURI(String prefix) {
else if (prefix.equals(.)) {
else {
			}
		}
	};

Create a Metadata instance for the given document.

Parameters:
document a metadata document
Returns:
the wrapped metadata
	public static Metadata metadata(Document document) {
		try {
			transformer.setOutputProperty(."xml");
			transformer.setOutputProperty(."yes");
			transformer.setOutputProperty(."UTF-8");
			transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount""2");
			return new MetadataWrapperImpl(documentxPathtransformer);
			throw new RuntimeException(e);
		}
	}


Wrapper implementation which uses javax.xml.xpath.XPath to extract values from org.w3c.dom.Document instances.
	private static class MetadataWrapperImpl implements Metadata {
		// TODO add lazy initialized attributes for publisherId, publishTimestamp, ...
		final XPath mXpath;
Create a wrapper instance for the given document.

Parameters:
document the document to wrap
xpath the XPATH instance for this wrapper
				Document document,
				XPath xpath,
				Transformer transformer,
				NamespaceContext namespaceContext) {
			 = document;
			 = xpath;
			 = transformer;
			.setNamespaceContext(namespaceContext);
		}
		/*
		 * Evaluate the given XPATH expression on the given document. Return
		 * the result as a string or null if an error occurred.
		 */
		private String getValueFromExpression(String expressionDocument doc) {
			try {
catch (XPathExpressionException e) {
				IfmapJLog.error("could not evaluate '" + expression + "' on '" +  + "'");
				return null;
			}
		}
		public String getPublisherId() {
			return getValueFromExpression("/*/@ifmap-publisher-id");
		}
			return getValueFromExpression("/*/@ifmap-timestamp");
		}
		public String getTypename() {
			return getValueFromExpression("name(/*)");
		}
		public String getLocalname() {
			return getValueFromExpression("local-name(/*)");
		}
		public String getCardinality() {
			return getValueFromExpression("/*/@ifmap-cardinality");
		}
		public boolean isSingleValue() {
			return getCardinality().equals("singleValue");
		}
		public boolean isMultiValue() {
			return getCardinality().equals("multiValue");
		}
		public String getValueForXpathExpression(String xPathExpression) {
			return getValueFromExpression(xPathExpression);
		}
				String defaultValue) {
			String result = getValueForXpathExpression(xPathExpression);
			if (result == null) {
				return defaultValue;
else {
				return result;
			}
		}
			StringWriter writer = new StringWriter();
			try {
						new DOMSource(), new StreamResult(writer));
catch (TransformerException e) {
				throw new RuntimeException(e);
			}
			return writer.toString();
		}
		public void setNamespaceContext(NamespaceContext context) {
		}
	}
New to GrepCode? Check out our FAQ X