class OriginTrackedCompositePropertySource extends CompositePropertySource implements OriginLookup<String> {

	/**
	 * Create a new {@code CompositePropertySource}.
	 *
	 * @param name the name of the property source
	 */
	public OriginTrackedCompositePropertySource(String name) {
		super(name);
	}

	/** {@inheritDoc} */
	@Override
	@SuppressWarnings({"unchecked", "rawtypes"})
	public Origin getOrigin(String name) {<FILL_FUNCTION_BODY>}

}

		for (PropertySource<?> propertySource : getPropertySources()) {
			if (propertySource instanceof OriginLookup) {
				OriginLookup lookup = (OriginLookup) propertySource;
				Origin origin = lookup.getOrigin(name);
				if (origin != null) {
					return origin;
				}
			}
		}
		return null;
	
<methods>public void <init>(java.lang.String) ,public void addFirstPropertySource(PropertySource<?>) ,public void addPropertySource(PropertySource<?>) ,public boolean containsProperty(java.lang.String) ,public java.lang.Object getProperty(java.lang.String) ,public java.lang.String[] getPropertyNames() ,public Collection<PropertySource<?>> getPropertySources() ,public java.lang.String toString() <variables>private final Set<PropertySource<?>> propertySources