/* * Copyright Aduna (http://www.aduna-software.com/) (c) 1997-2006. * * Licensed under the Aduna BSD-style license. */ package org.openrdf.sail.memory.model; import org.openrdf.model.impl.BNodeImpl; /** * A MemoryStore-specific extension of BNodeImpl giving it node properties. */ public class MemBNode extends BNodeImpl implements MemResource { /*-----------* * Variables * *-----------*/ /** * */ private static final long serialVersionUID = -887382892580321647L; /** * The object that created this MemBNode. */ transient private Object creator; /** * The list of statements for which this MemBNode is the subject. */ transient private MemStatementList subjectStatements; /** * The list of statements for which this MemBNode is the object. */ transient private MemStatementList objectStatements; /** * The list of statements for which this MemBNode represents the context. */ transient private MemStatementList contextStatements; /*--------------* * Constructors * *--------------*/ /** * Creates a new MemBNode for a bnode ID. * * @param creator The object that is creating this MemBNode. * @param id bnode ID. */ public MemBNode(Object creator, String id) { super(id); this.creator = creator; } /*---------* * Methods * *---------*/ // Implements MemValue.getCreator() public Object getCreator() { return creator; } // Implements MemResource.getSubjectStatementList() public MemStatementList getSubjectStatementList() { if (subjectStatements == null) { return EMPTY_LIST; } else { return subjectStatements; } } // Implements MemResource.getSubjectStatementCount() public int getSubjectStatementCount() { if (subjectStatements == null) { return 0; } else { return subjectStatements.size(); } } // Implements MemResource.addSubjectStatement(MemStatement) public void addSubjectStatement(MemStatement st) { if (subjectStatements == null) { subjectStatements = new MemStatementList(4); } subjectStatements.add(st); } // Implements MemResource.removeSubjectStatement(MemStatement) public void removeSubjectStatement(MemStatement st) { subjectStatements.remove(st); if (subjectStatements.isEmpty()) { subjectStatements = null; } } // Implements MemValue.getObjectStatementList() public MemStatementList getObjectStatementList() { if (objectStatements == null) { return EMPTY_LIST; } else { return objectStatements; } } // Implements MemValue.getObjectStatementCount() public int getObjectStatementCount() { if (objectStatements == null) { return 0; } else { return objectStatements.size(); } } // Implements MemValue.addObjectStatement(MemStatement) public void addObjectStatement(MemStatement st) { if (objectStatements == null) { objectStatements = new MemStatementList(4); } objectStatements.add(st); } // Implements MemValue.removeObjectStatement(MemStatement) public void removeObjectStatement(MemStatement st) { objectStatements.remove(st); if (objectStatements.isEmpty()) { objectStatements = null; } } // Implements MemResource.getContextStatementList() public MemStatementList getContextStatementList() { if (contextStatements == null) { return EMPTY_LIST; } else { return contextStatements; } } // Implements MemResource.getContextStatementCount() public int getContextStatementCount() { if (contextStatements == null) { return 0; } else { return contextStatements.size(); } } // Implements MemResource.addContextStatement(MemStatement) public void addContextStatement(MemStatement st) { if (contextStatements == null) { contextStatements = new MemStatementList(4); } contextStatements.add(st); } // Implements MemResource.removeContextStatement(MemStatement) public void removeContextStatement(MemStatement st) { contextStatements.remove(st); if (contextStatements.isEmpty()) { contextStatements = null; } } }