this.resource = res;
}
- @SuppressWarnings("rawtypes")
@Override
- public Object getAdapter(Class adapter) {
- if (adapter == Resource.class)
+ public <T> T getAdapter(Class<T> adapter) {
+ if (adapter.isAssignableFrom(Resource.class))
if (resource instanceof Resource)
- return resource;
+ return adapter.cast(resource);
else
return null;
- if (adapter == StructuralResource.class)
+ if (adapter.isAssignableFrom(StructuralResource.class))
if (resource instanceof StructuralResource)
- return resource;
+ return adapter.cast(resource);
else
return null;
- if (adapter == vtkProp.class)
- return prop;
- if (adapter == IG3DNode.class && node instanceof IG3DNode)
- return node;
- if (adapter == INode.class)
- return node;
+ if (adapter.isAssignableFrom(vtkProp.class))
+ return adapter.cast(prop);
+ if (adapter.isAssignableFrom(IG3DNode.class) && node instanceof IG3DNode)
+ return adapter.cast(node);
+ if (adapter.isAssignableFrom(INode.class))
+ return adapter.cast(node);
return null;
}