use of org.opennms.netmgt.collection.support.CollectionResourceWrapper in project opennms by OpenNMS.
the class CollectableService method wrapResourcesWithTimekeeper.
public static CollectionSetVisitor wrapResourcesWithTimekeeper(CollectionSetVisitor visitor, TimeKeeper timeKeeper) {
// Wrap the given visitor and intercept the calls to visit the resources
final CollectionSetVisitor wrappedVisitor = new CollectionSetVisitorWrapper(visitor) {
private CollectionResource wrappedResource;
private CollectionAttribute wrappedAttribute;
private AttributeGroup wrappedGroup;
@Override
public void visitResource(CollectionResource resource) {
// Wrap the given resource and return the custom timekeeper
wrappedResource = new CollectionResourceWrapper(resource) {
@Override
public TimeKeeper getTimeKeeper() {
return timeKeeper;
}
};
visitor.visitResource(wrappedResource);
}
@Override
public void completeResource(CollectionResource resource) {
visitor.completeResource(wrappedResource);
}
@Override
public void visitAttribute(CollectionAttribute attribute) {
// Wrap the given attribute and return the custom resource
wrappedAttribute = new CollectionAttributeWrapper(attribute) {
@Override
public CollectionResource getResource() {
return wrappedResource;
}
};
visitor.visitAttribute(wrappedAttribute);
}
@Override
public void completeAttribute(CollectionAttribute attribute) {
visitor.completeAttribute(wrappedAttribute);
}
@Override
public void visitGroup(AttributeGroup group) {
// Wrap the given attribute group and return the custom resource
wrappedGroup = new AttributeGroupWrapper(group) {
@Override
public CollectionResource getResource() {
return wrappedResource;
}
};
visitor.visitGroup(wrappedGroup);
}
@Override
public void completeGroup(AttributeGroup group) {
visitor.completeGroup(wrappedGroup);
}
};
return wrappedVisitor;
}
Aggregations