Method init, Method accessor, Method modify, Method clear, Method hide, Method disable, Method validate) {
FacetedMethod facetedMethod = FacetedMethod.createForProperty(accessor.getDeclaringClass(), accessor);
FacetUtil.addFacet(new PropertyAccessorFacetViaAccessor(accessor, facetedMethod));
FacetUtil.addFacet(new PropertyInitializationFacetViaSetterMethod(init, facetedMethod));
FacetUtil.addFacet(new PropertySetterFacetViaModifyMethod(modify, facetedMethod));
FacetUtil.addFacet(new PropertyClearFacetViaClearMethod(clear, facetedMethod));
FacetUtil.addFacet(new HideForContextFacetViaMethod(hide, facetedMethod));
FacetUtil.addFacet(new DisableForContextFacetViaMethod(disable, facetedMethod));
FacetUtil.addFacet(new PropertyValidateFacetViaMethod(validate, facetedMethod));
FacetUtil.addFacet(new NamedFacetInferred(accessor.getName(), facetedMethod));
return facetedMethod;