001: /*
002: * Copyright (c) 2002-2006 by OpenSymphony
003: * All rights reserved.
004: */
005: package com.opensymphony.xwork.mock;
006:
007: import com.opensymphony.xwork.util.ObjectTypeDeterminer;
008:
009: /**
010: * Mocks the function of an ObjectTypeDeterminer for testing purposes.
011: *
012: * @author Gabe
013: */
014: public class MockObjectTypeDeterminer implements ObjectTypeDeterminer {
015:
016: private Class keyClass;
017: private Class elementClass;
018: private String keyProperty;
019: private boolean shouldCreateIfNew;
020:
021: public MockObjectTypeDeterminer() {
022: }
023:
024: /**
025: * @param keyClass
026: * @param elementClass
027: * @param keyProperty
028: * @param shouldCreateIfNew
029: */
030: public MockObjectTypeDeterminer(Class keyClass, Class elementClass,
031: String keyProperty, boolean shouldCreateIfNew) {
032: super ();
033: this .keyClass = keyClass;
034: this .elementClass = elementClass;
035: this .keyProperty = keyProperty;
036: this .shouldCreateIfNew = shouldCreateIfNew;
037: }
038:
039: public Class getKeyClass(Class parentClass, String property) {
040: return getKeyClass();
041: }
042:
043: public Class getElementClass(Class parentClass, String property,
044: Object key) {
045: return getElementClass();
046: }
047:
048: public String getKeyProperty(Class parentClass, String property) {
049: return getKeyProperty();
050: }
051:
052: public boolean shouldCreateIfNew(Class parentClass,
053: String property, Object target, String keyProperty,
054: boolean isIndexAccessed) {
055: return isShouldCreateIfNew();
056: }
057:
058: /**
059: * @return Returns the elementClass.
060: */
061: public Class getElementClass() {
062: return elementClass;
063: }
064:
065: /**
066: * @param elementClass The elementClass to set.
067: */
068: public void setElementClass(Class elementClass) {
069: this .elementClass = elementClass;
070: }
071:
072: /**
073: * @return Returns the keyClass.
074: */
075: public Class getKeyClass() {
076: return keyClass;
077: }
078:
079: /**
080: * @param keyClass The keyClass to set.
081: */
082: public void setKeyClass(Class keyClass) {
083: this .keyClass = keyClass;
084: }
085:
086: /**
087: * @return Returns the keyProperty.
088: */
089: public String getKeyProperty() {
090: return keyProperty;
091: }
092:
093: /**
094: * @param keyProperty The keyProperty to set.
095: */
096: public void setKeyProperty(String keyProperty) {
097: this .keyProperty = keyProperty;
098: }
099:
100: /**
101: * @return Returns the shouldCreateIfNew.
102: */
103: public boolean isShouldCreateIfNew() {
104: return shouldCreateIfNew;
105: }
106:
107: /**
108: * @param shouldCreateIfNew The shouldCreateIfNew to set.
109: */
110: public void setShouldCreateIfNew(boolean shouldCreateIfNew) {
111: this.shouldCreateIfNew = shouldCreateIfNew;
112: }
113: }
|