/* * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.controller.sal.binding.model.api.type.builder; import org.opendaylight.controller.sal.binding.model.api.GeneratedTransferObject; /** * Generated Transfer Object Builder is interface that contains methods to * build and instantiate Generated Transfer Object definition. * * @see GeneratedTransferObject */ public interface GeneratedTOBuilder extends GeneratedTypeBuilder { /** * Add Generated Transfer Object from which will be extended current * Generated Transfer Object. *
* By definition Java does not allow multiple * inheritance, hence if there is already definition of Generated * Transfer Object the extending object will be overwritten by lastly * added Generated Transfer Object. *
* If Generated Transfer Object is null the method SHOULD * throw {@link IllegalArgumentException} * * @param genTransObj Generated Transfer Object */ public void setExtendsType(final GeneratedTransferObject genTransObj); /** * Add new Generated Property definition for Generated Transfer Object * Builder and returns Generated Property Builder for specifying Property. *
* Name of Property cannot be null, * if it is null the method SHOULD throw {@link IllegalArgumentException} * * @param name Name of Property * @return new instance of Generated Property Builder. */ public GeneratedPropertyBuilder addProperty(final String name); /** * Add Property that will be part of equals definition. *
* If Generated Property Builder is null the method SHOULD * throw {@link IllegalArgumentException} * * @param property Generated Property Builder * @return true if addition of Generated Property into list * of equals properties is successful. */ public boolean addEqualsIdentity(final GeneratedPropertyBuilder property); /** * Add Property that will be part of hashCode definition. *
* If Generated Property Builder is null the method SHOULD * throw {@link IllegalArgumentException} * * @param property Generated Property Builder * @return true if addition of Generated Property into list * of hashCode properties is successful. */ public boolean addHashIdentity(final GeneratedPropertyBuilder property); /** * Add Property that will be part of toString definition. *
* If Generated Property Builder is null the method SHOULD * throw {@link IllegalArgumentException} * * @param property Generated Property Builder * @return true if addition of Generated Property into list * of toString properties is successful. */ public boolean addToStringProperty(final GeneratedPropertyBuilder property); @Override public GeneratedTransferObject toInstance(); }