/*
 * Copyright (c) 2012 Mateusz Parzonka, Eric Bodden
 * 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
 *
 * Contributors:
 * Mateusz Parzonka - initial API and implementation
 */
package prm4j.indexing.treebased;

public interface BindingStore<A> {

    public LowLevelBinding<A> getBinding(Object object);

    /**
     * Tests if a IBinding exists for the given object. As a side-effect, an IBinding may be pre-fetched because an
     * getBinding-operation is to be expected.
     *
     * @param object
     * @param boundObject
     * @return
     */
    public boolean contains(int parameterObject, Object boundObject);

    /**
     * DESIGN Implementors must set base nodes.
     *
     * @param parameterId
     * @param boundObject
     * @return
     */
    public LowLevelBinding<A> getBinding(int parameterId, Object boundObject);

}

@@ -526,24 +526,39 @@
 ts if a 
-I
+%7B@link LowLevel
 Binding
+%7D
  exists 
@@ -581,14 +581,63 @@
 ject
-. As a
+ associated to the parameter with given id. As a%0A     *
  sid
@@ -653,16 +653,31 @@
  an 
-I
+%7B@link LowLevel
 Binding
+%7D
  may
@@ -702,23 +702,16 @@
 cause an
-%0A     *
  getBind
@@ -764,22 +764,27 @@
  @param 
-object
+parameterId
 %0A     * 
@@ -808,32 +808,97 @@
 t%0A     * @return
+ %3Ccode%3Etrue%3C/code%3E if a binding exists for the given bound object
 %0A     */%0A    pub
@@ -931,22 +931,18 @@
 arameter
-Object
+Id
 , Object

Improve comments