package com.google.code.joto.ast.valueholder; import com.google.code.joto.ast.valueholder.ValueHolderAST.ArrayEltRefValueHolder; import com.google.code.joto.ast.valueholder.ValueHolderAST.CollectionEltRefValueHolder; import com.google.code.joto.ast.valueholder.ValueHolderAST.CollectionValueHolder; import com.google.code.joto.ast.valueholder.ValueHolderAST.ImmutableObjectValueHolder; import com.google.code.joto.ast.valueholder.ValueHolderAST.MapEntryKeyRefValueHolder; import com.google.code.joto.ast.valueholder.ValueHolderAST.MapEntryValueHolder; import com.google.code.joto.ast.valueholder.ValueHolderAST.MapEntryValueRefValueHolder; import com.google.code.joto.ast.valueholder.ValueHolderAST.MapValueHolder; import com.google.code.joto.ast.valueholder.ValueHolderAST.ObjectValueHolder; import com.google.code.joto.ast.valueholder.ValueHolderAST.PrimitiveArrayEltValueHolder; import com.google.code.joto.ast.valueholder.ValueHolderAST.PrimitiveArrayValueHolder; import com.google.code.joto.ast.valueholder.ValueHolderAST.PrimitiveFieldValueHolder; import com.google.code.joto.ast.valueholder.ValueHolderAST.RefArrayValueHolder; import com.google.code.joto.ast.valueholder.ValueHolderAST.RefFieldValueHolder; public interface ValueHolderVisitor2<R,A> { // R caseNull(A arg); R caseObject(ObjectValueHolder p, A arg); R casePrimitiveField(PrimitiveFieldValueHolder p, A arg); R caseRefField(RefFieldValueHolder p, A arg); R casePrimitiveArray(PrimitiveArrayValueHolder<?> p, A arg); R casePrimitiveArrayElt(PrimitiveArrayEltValueHolder<?> p, A arg); R caseRefArray(RefArrayValueHolder p, A arg); R caseRefArrayElt(ArrayEltRefValueHolder p, A arg); // non primitive helper sub-classes of ObjectValueHolder R caseImmutableObjectValue(ImmutableObjectValueHolder p, A arg); R caseCollection(CollectionValueHolder p, A arg); R caseCollectionElt(CollectionEltRefValueHolder p, A arg); R caseMap(MapValueHolder p, A arg); R caseMapEntry(MapEntryValueHolder p, A arg); R caseMapEntryKey(MapEntryKeyRefValueHolder p, A arg); R caseMapEntryValue(MapEntryValueRefValueHolder p, A arg); }