public static LinkAndLabel newLinkAndLabel( final ObjectAdapter objectAdapter, final ObjectAction objectAction, final AbstractLink link, final String disabledReasonIfAny, final boolean blobOrClob) { final String name = ObjectAction.Utils.nameFor(objectAction); final boolean explorationOrPrototype = objectAction.isPrototype(); final String actionIdentifier = ObjectAction.Utils.actionIdentifierFor(objectAction); final String description = ObjectAction.Utils.descriptionOf(objectAction); final String cssClass = ObjectAction.Utils.cssClassFor(objectAction, objectAdapter); final String cssClassFa = ObjectAction.Utils.cssClassFaFor(objectAction); final CssClassFaPosition cssClassFaPosition = ObjectAction.Utils.cssClassFaPositionFor(objectAction); final ActionLayout.Position actionLayoutPosition = ObjectAction.Utils.actionLayoutPositionOf(objectAction); final ActionSemantics.Of semantics = objectAction.getSemantics(); return new LinkAndLabel( link, name, disabledReasonIfAny, description, blobOrClob, explorationOrPrototype, actionIdentifier, cssClass, cssClassFa, cssClassFaPosition, actionLayoutPosition, SemanticsOf.from(semantics), Parameters.fromParameterCount(objectAction.getParameterCount())); }