package com.google.code.joto.value2java;
import com.google.code.joto.ast.valueholder.ValueHolderAST.RefObjectValueHolder;
/**
* delegate class for implementing "object->link->object to stmt" part of the algorithm in
* class ValueHolderToBeanASTStmt.
*
* implementations sub-classes must be thread safe, and stateless,
* but the owner ValueHolderToBeanASTStmt is used as a context/callback for processing.
*
*
* This class is used to extends ObjectVHToStmtProcessor capabilities,
* for objects that are not accessible by references, and
* can not be converted without analysing the dependency links between objects.
*
* Typical examples are objects protected/private in other objects,
* and partially accessible only.
* example:
* <ul>
* <li>aggregate objet</li>
* <li>SCC object (=Second Citizen Class... usually for List/Set/Map in orms..)</li>
* <li>inverse relationship objects... </li>
* </ul>
*
*
* see also ObjectVHToStmtProcessor, for simpler conversions,
* where object is accessible by reference.
*/
public interface RefObjectVHToStmtConverter {
public boolean canConvert(Class<?> fromType, String[] path, Class<?> toType);
public void convert(VHToStmt owner,
RefObjectValueHolder refObjToObj);
}