/****************************************************************************** * Copyright (c) 2015 IBM Corporation. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *****************************************************************************/ package com.ibm.research.rdf.store.jena.impl.update; import org.apache.jena.graph.Node; import com.ibm.research.rdf.store.config.Constants; import com.ibm.research.rdf.store.jena.RdfStoreException; import com.ibm.research.rdf.store.runtime.service.types.TypeMap; public class Node2String { public static String getString(Node n) { if (n.isURI()) { return n.toString(false); } else if (n.isBlank()) { return Constants.PREFIX_BLANK_NODE + n.toString(); } else if (n.isLiteral()) { String object; if (n.getLiteral().getDatatype() != null) { // mdb types handling //uri = n.getLiteralDatatypeURI(); // object = n.getLiteral().toString(false); object = n.getLiteralLexicalForm(); // object = n.getLiteralValue().toString(); } else { String lang = n.getLiteralLanguage(); if (lang != null && lang.length() > 0) { // mdb types // object = n.getLiteralValue() + Constants.LITERAL_LANGUAGE // + lang; object = n.getLiteralValue().toString(); } else { // mdb datatype change // object = "\"" + n.getLiteralValue() + "\""; object = n.getLiteralValue().toString(); } } return object; } else { return "\"" + n.toString(false) + "\""; } } public static short getType(Node n) { if (n.isURI()) { return TypeMap.IRI_ID; } if (n.isBlank()) { return TypeMap.BLANK_NODE_ID; } if (n.isLiteral()) { if (n.getLiteral().getDatatype() != null) { return TypeMap.getDatatypeType(n.getLiteralDatatypeURI()); } else { String lang = n.getLiteralLanguage(); if (lang != null && lang.length() > 0) { return TypeMap.getLanguageType(lang); } else { return TypeMap.SIMPLE_LITERAL_ID; } } } throw new RdfStoreException("Unknown RDFterm"); } }