/* * Copyright (c) 2010 Mysema Ltd. * All rights reserved. * */ package com.mysema.rdfbean.model; import java.util.HashMap; import java.util.Map; /** * @author tiwe */ public abstract class AbstractDialect<N, R extends N, B extends R, U extends R, L extends N, S> implements Dialect<N, R, B, U, L, S> { private final Map<String, UID> datatypeUIDCache = new HashMap<String, UID>(); public AbstractDialect() { for (UID uid : Nodes.get(XSD.NS)) { datatypeUIDCache.put(uid.getId(), uid); } } protected UID getDatatypeUID(String datatype) { UID uid = datatypeUIDCache.get(datatype); if (uid == null) { uid = new UID(datatype); datatypeUIDCache.put(datatype, uid); } return uid; } @Override public N getNode(NODE node) { if (node.isLiteral()) { return getLiteral(node.asLiteral()); } else if (node.isBNode()) { return getBNode(node.asBNode()); } else { return getURI(node.asURI()); } } @Override public R getResource(ID id) { if (id.isURI()) { return getURI(id.asURI()); } else { return getBNode(id.asBNode()); } } }