Package net.sf.okapi.lib.xliff2.walker
Class XliffWalker
- java.lang.Object
-
- net.sf.okapi.lib.xliff2.walker.XliffWalker
-
public class XliffWalker extends Object
Allows for traversal of the tree structure of an XLIFF document, in a fashion similar to visitor pattern. Three types of visitor can be added to the XliffWalker: File visitors, Unit visitors, and Segment visitors. The exact order in which the visit() method of those visitors is called is determined by theIXliffWalkerStrategy, for which a default implementation, flexible implementation and ordered pipeline implementations are provided.- Author:
- Martin Wunderlich, Vladyslav Mykhalets
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classXliffWalker.VisitPlaceAwareXliffVisitor<T>Xliff visitorIXliffVisitordecorator class aware of visit place defined by path selectorXliffWalkerPathSelector
-
Constructor Summary
Constructors Constructor Description XliffWalker()XliffWalker(IXliffWalkerStrategy strategy)
-
Method Summary
-
-
-
Constructor Detail
-
XliffWalker
public XliffWalker()
-
XliffWalker
public XliffWalker(IXliffWalkerStrategy strategy)
-
-
Method Detail
-
doWalk
public void doWalk(XLIFFDocument xlf)
Main method for running the traversal. Should only be called after some visitors have been added to the Walker. Otherwise, an exception will be thrown.
-
setVisitors
public void setVisitors(List<IXliffVisitor<FileNode>> fileVisitors, List<IXliffVisitor<UnitNode>> unitVisitors, List<IXliffVisitor<Segment>> segmentVisitors)
-
removeFileVisitor
public void removeFileVisitor(String id)
-
removeUnitVisitor
public void removeUnitVisitor(String id)
-
removeSegmentVisitor
public void removeSegmentVisitor(String id)
-
getVisitorCount
public int getVisitorCount()
-
getFileVisitor
public XliffWalker.VisitPlaceAwareXliffVisitor<FileNode> getFileVisitor(String id)
Method returnsXliffWalker.VisitPlaceAwareXliffVisitorforFileNodeby its id.- Parameters:
id- id of the visitor- Returns:
- instance of
XliffWalker.VisitPlaceAwareXliffVisitorforFileNode
-
getUnitVisitor
public XliffWalker.VisitPlaceAwareXliffVisitor<UnitNode> getUnitVisitor(String id)
Method returnsXliffWalker.VisitPlaceAwareXliffVisitorforUnitNodeby its id.- Parameters:
id- id of the visitor- Returns:
- instance of
XliffWalker.VisitPlaceAwareXliffVisitorforUnitNode
-
getSegmentVisitor
public XliffWalker.VisitPlaceAwareXliffVisitor<Segment> getSegmentVisitor(String id)
Method returnsXliffWalker.VisitPlaceAwareXliffVisitorforSegmentby its id.- Parameters:
id- id of the visitor- Returns:
- instance of
XliffWalker.VisitPlaceAwareXliffVisitorforSegment
-
getFileNodeVisitors
public List<IXliffVisitor<FileNode>> getFileNodeVisitors(String fileId)
Method returns visitors which are configured to be executed on specific file id.- Parameters:
fileId- file node id- Returns:
- list of
IXliffVisitorforFileNode
-
getUnitNodeVisitors
public List<IXliffVisitor<UnitNode>> getUnitNodeVisitors(String fileId, String unitId)
Method returns visitors which are configured to be executed on specific file id and unit id.- Parameters:
fileId- file node idunitId- unit node id- Returns:
- list of
IXliffVisitorforUnitNode
-
getSegmentVisitors
public List<IXliffVisitor<Segment>> getSegmentVisitors(String fileId, String unitId, int segmentIndex)
Method returns visitors which are configured to be executed on specific file id, unit id and segment index.- Parameters:
fileId- file node idunitId- unit node idsegmentIndex- segment index- Returns:
- list of
IXliffVisitorforSegment
-
getAllFileNodeVisitors
public List<IXliffVisitor<FileNode>> getAllFileNodeVisitors()
-
getAllUnitNodeVisitors
public List<IXliffVisitor<UnitNode>> getAllUnitNodeVisitors()
-
getAllSegmentVisitors
public List<IXliffVisitor<Segment>> getAllSegmentVisitors()
-
addFileVisitor
public String addFileVisitor(XliffWalker.VisitPlaceAwareXliffVisitor<FileNode> visitor)
-
addFileVisitor
public String addFileVisitor(IXliffVisitor<FileNode> visitor, XliffWalkerPathSelector... pathSelectors)
-
addUnitVisitor
public String addUnitVisitor(XliffWalker.VisitPlaceAwareXliffVisitor<UnitNode> visitor)
-
addUnitVisitor
public String addUnitVisitor(IXliffVisitor<UnitNode> visitor, XliffWalkerPathSelector... pathSelectors)
-
addSegmentVisitor
public String addSegmentVisitor(XliffWalker.VisitPlaceAwareXliffVisitor<Segment> visitor)
-
addSegmentVisitor
public String addSegmentVisitor(IXliffVisitor<Segment> visitor, XliffWalkerPathSelector... pathSelectors)
-
removeVisitors
public void removeVisitors()
-
-