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