Package com.ibm.fhir.model.visitor
Class CopyingVisitor<T extends Visitable>
- java.lang.Object
-
- com.ibm.fhir.model.visitor.DefaultVisitor
-
- com.ibm.fhir.model.visitor.CopyingVisitor<T>
-
- Type Parameters:
T- The type to copy. Only visitables of this type should be visited.
- All Implemented Interfaces:
Visitor
- Direct Known Subclasses:
AddingVisitor,DeletingVisitor,InsertingVisitor,MovingVisitor,ReferenceMappingVisitor,ReplacingVisitor
@NotThreadSafe public class CopyingVisitor<T extends Visitable> extends DefaultVisitor
Copy a Resource or Element. Because model objects are immutable, by default this will return a reference to the exact same object that was originally visited. However, subclasses may override this class in order to modify the copied Resource or Element by setting new values on the current builder via ({@link BuilderWrapper#getBuilder()) and marking it dirty via ({@link BuilderWrapper#markDirty())). Note: this class is NOT threadsafe. Only one object should be visited at a time.
-
-
Field Summary
-
Fields inherited from class com.ibm.fhir.model.visitor.DefaultVisitor
visitChildren
-
-
Constructor Summary
Constructors Constructor Description CopyingVisitor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected CodeconvertToCodeSubtype(Visitable parent, String elementName, Code value)protected voiddelete()protected voiddoVisitEnd(String elementName, int elementIndex, Resource resource)protected voiddoVisitEnd(String elementName, int elementIndex, Element element)protected voiddoVisitListEnd(String elementName, List<? extends Visitable> visitables, Class<?> type)protected voiddoVisitListStart(String elementName, List<? extends Visitable> visitables, Class<?> type)protected voiddoVisitStart(String elementName, int elementIndex, Resource resource)protected voiddoVisitStart(String elementName, int elementIndex, Element element)protected Builder<?>getBuilder()protected List<Visitable>getList()StringgetPath()Get the FHIRPath path of the Resource or Element currently being visited.TgetResult()Retrieve a copy of the resource last visited.protected voidmarkDirty()protected voidmarkListDirty()voidpostVisit(Resource resource)voidpostVisit(Element element)protected voidreplace(Resource.Builder builder)protected voidreplace(Element.Builder builder)voidreset()Reset the state of the CopyingVisitor.voidvisitEnd(String elementName, int index, Resource resource)Subclasses may override doVisitEndvoidvisitEnd(String elementName, int index, Element element)Subclasses may override doVisitEndvoidvisitEnd(String elementName, List<? extends Visitable> visitables, Class<?> type)Subclasses may override doVisitListEndvoidvisitStart(String elementName, int index, Resource resource)Subclasses may override doVisitStartvoidvisitStart(String elementName, int index, Element element)Subclasses may override doVisitStartvoidvisitStart(String elementName, List<? extends Visitable> visitables, Class<?> type)Subclasses may override doVisitListStart-
Methods inherited from class com.ibm.fhir.model.visitor.DefaultVisitor
preVisit, preVisit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
-
-
-
-
Method Detail
-
doVisitListStart
protected void doVisitListStart(String elementName, List<? extends Visitable> visitables, Class<?> type)
-
doVisitListEnd
protected void doVisitListEnd(String elementName, List<? extends Visitable> visitables, Class<?> type)
-
getResult
public T getResult()
Retrieve a copy of the resource last visited.- Returns:
- null if no object has been visited yet
- Throws:
ClassCastException- if the copied object cannot be cast to type T
-
getPath
public final String getPath()
Get the FHIRPath path of the Resource or Element currently being visited. This method is primarily for subclasses but can also be used externally to retrieve a path to the Resource or Element that was being visited when an Exception occurs.- Returns:
- The path of the Resource or Element currently being visited, the path that was being visited when an exception was thrown, or null if there is no Resource or Element being visited.
-
reset
public final void reset()
Reset the state of the CopyingVisitor. Invoke this method when visiting has failed and you want to clear the state in order to re-use the visitor.
-
visitStart
public final void visitStart(String elementName, int index, Element element)
Subclasses may override doVisitStart- Specified by:
visitStartin interfaceVisitor- Overrides:
visitStartin classDefaultVisitor
-
visitStart
public final void visitStart(String elementName, int index, Resource resource)
Subclasses may override doVisitStart- Specified by:
visitStartin interfaceVisitor- Overrides:
visitStartin classDefaultVisitor
-
visitEnd
public final void visitEnd(String elementName, int index, Element element)
Subclasses may override doVisitEnd- Specified by:
visitEndin interfaceVisitor- Overrides:
visitEndin classDefaultVisitor
-
visitEnd
public final void visitEnd(String elementName, int index, Resource resource)
Subclasses may override doVisitEnd- Specified by:
visitEndin interfaceVisitor- Overrides:
visitEndin classDefaultVisitor
-
visitStart
public void visitStart(String elementName, List<? extends Visitable> visitables, Class<?> type)
Subclasses may override doVisitListStart- Specified by:
visitStartin interfaceVisitor- Overrides:
visitStartin classDefaultVisitor
-
visitEnd
public void visitEnd(String elementName, List<? extends Visitable> visitables, Class<?> type)
Subclasses may override doVisitListEnd- Specified by:
visitEndin interfaceVisitor- Overrides:
visitEndin classDefaultVisitor
-
postVisit
public void postVisit(Element element)
- Specified by:
postVisitin interfaceVisitor- Overrides:
postVisitin classDefaultVisitor
-
postVisit
public void postVisit(Resource resource)
- Specified by:
postVisitin interfaceVisitor- Overrides:
postVisitin classDefaultVisitor
-
getBuilder
protected Builder<?> getBuilder()
-
replace
protected void replace(Resource.Builder builder)
-
replace
protected void replace(Element.Builder builder)
-
delete
protected void delete()
-
markDirty
protected void markDirty()
-
markListDirty
protected void markListDirty()
-
-