1. /*
  2. * Copyright 2001-2004 The Apache Software Foundation.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package org.apache.commons.betwixt.io.read;
  17. /**
  18. * Creator of beans that may delegate responsibility to members down the chain.
  19. *
  20. * @author Robert Burrell Donkin
  21. * @since 0.5
  22. */
  23. public interface ChainedBeanCreator {
  24. /**
  25. * Creates a bean either directly or by delegating the responsibility to the other
  26. * members of the chain.
  27. *
  28. * @param elementMapping specifies the mapping between the type and element.
  29. * <strong>Note</strong> it is recommended that classes do not store a permenant
  30. * reference to this object since these objects may later be reused.
  31. * Not null
  32. * @param context the context in which this converision happens, not null
  33. * @param chain not null
  34. * @return the Object created, possibly null
  35. */
  36. // TODO: is element mapping really necessary here?
  37. // TODO: what about exception handling?
  38. public Object create(
  39. ElementMapping elementMapping,
  40. ReadContext context,
  41. BeanCreationChain chain);
  42. }