@Override @SuppressWarnings("unchecked") public <T> T adapt(Class<T> type) { T result = null; if (type.isAssignableFrom(getClass())) { result = (T) this; } else if (type.isAssignableFrom(CompositeData.class)) { result = (T) getCompositeData(); } else if (type.isAssignableFrom(ResourceContent.class)) { result = (T) getResourceContent(); } return result; }