/** * * Copyright * 2009-2015 Jayway Products AB * 2016-2017 Föreningen Sambruk * * Licensed under AGPL, Version 3.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.gnu.org/licenses/agpl.txt * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package se.streamsource.streamflow.web.context; import org.qi4j.api.entity.EntityReference; import org.qi4j.api.value.ValueBuilderFactory; import se.streamsource.dci.value.link.LinksValue; import se.streamsource.streamflow.web.domain.Describable; /** * Builder for making it easier to create LinksValue/LinkValue in a Streamflow roleMap */ public class LinksBuilder extends se.streamsource.dci.value.link.LinksBuilder<LinksBuilder> { public LinksBuilder( ValueBuilderFactory vbf ) { super(vbf); } public LinksBuilder addDescribables( Iterable<? extends Describable> items ) { for (Describable item : items) { addLink( item.getDescription(), item.toString() ); } return this; } public LinksBuilder addDescribable( Describable item ) { addLink( item.getDescription(), item.toString() ); return this; } public LinksBuilder addDescribable( Describable item, Describable group ) { return addDescribable( item, group.getDescription() ); } public LinksBuilder addDescribable( Describable item, String group ) { addLink( item.getDescription(), EntityReference.getEntityReference( item ), group, null ); return this; } public LinksBuilder addDescribable( Describable item, String group, String classes ) { addLink( item.getDescription(), EntityReference.getEntityReference( item ), group, classes ); return this; } public LinksValue newLinks() { return linksBuilder.newInstance(); } }