/*
* 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.yangtools.concepts;
public interface ClassBasedPropertyBuilder<P, T extends ClassBasedPropertyBuilder<P, T>> extends Builder<P> {
/**
* Sets a value of property uniquely identified by its
* class.
*
* @param <V> value type
* @param type Type of property to set
* @param value Value of property
* @return Builder instance
*/
<V> T set(Class<V> type, V value);
/**
* Gets a value of property based on its type.
*
* @param <V> value type
* @param type Type of property to get
* @return Builder instance
*/
<V> V get(Class<V> type);
}