9 changed files with 79 additions and 386 deletions
@ -1,227 +0,0 @@
@@ -1,227 +0,0 @@
|
||||
/* |
||||
* Copyright 2014 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package org.springframework.data.mongodb.core.mapping; |
||||
|
||||
import java.lang.annotation.Annotation; |
||||
import java.util.ArrayList; |
||||
import java.util.Collection; |
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
import org.springframework.data.annotation.Id; |
||||
import org.springframework.data.annotation.Version; |
||||
import org.springframework.data.mapping.AssociationHandler; |
||||
import org.springframework.data.mapping.PersistentProperty; |
||||
import org.springframework.data.mapping.PreferredConstructor; |
||||
import org.springframework.data.mapping.PropertyHandler; |
||||
import org.springframework.data.mapping.SimpleAssociationHandler; |
||||
import org.springframework.data.mapping.SimplePropertyHandler; |
||||
import org.springframework.data.util.TypeInformation; |
||||
|
||||
/** |
||||
* Trivial dummy implementation of {@link MongoPersistentEntity} to be used in tests. |
||||
* |
||||
* @author Christoph Strobl |
||||
* @param <T> |
||||
*/ |
||||
public class MongoPersistentEntityTestDummy<T> implements MongoPersistentEntity<T> { |
||||
|
||||
private Map<Class<?>, Annotation> annotations = new HashMap<Class<?>, Annotation>(); |
||||
private Collection<MongoPersistentProperty> properties = new ArrayList<MongoPersistentProperty>(); |
||||
private String collection; |
||||
private String name; |
||||
private Class<T> type; |
||||
|
||||
@Override |
||||
public String getName() { |
||||
return name; |
||||
} |
||||
|
||||
@Override |
||||
public PreferredConstructor<T, MongoPersistentProperty> getPersistenceConstructor() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public boolean isConstructorArgument(PersistentProperty<?> property) { |
||||
return false; |
||||
} |
||||
|
||||
@Override |
||||
public boolean isIdProperty(PersistentProperty<?> property) { |
||||
return property != null ? property.isIdProperty() : false; |
||||
} |
||||
|
||||
@Override |
||||
public boolean isVersionProperty(PersistentProperty<?> property) { |
||||
return property != null ? property.isIdProperty() : false; |
||||
} |
||||
|
||||
@Override |
||||
public MongoPersistentProperty getIdProperty() { |
||||
return getPersistentProperty(Id.class); |
||||
} |
||||
|
||||
@Override |
||||
public MongoPersistentProperty getVersionProperty() { |
||||
return getPersistentProperty(Version.class); |
||||
} |
||||
|
||||
@Override |
||||
public MongoPersistentProperty getPersistentProperty(String name) { |
||||
|
||||
for (MongoPersistentProperty p : this.properties) { |
||||
if (p.getName().equals(name)) { |
||||
return p; |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public MongoPersistentProperty getPersistentProperty(Class<? extends Annotation> annotationType) { |
||||
|
||||
for (MongoPersistentProperty p : this.properties) { |
||||
if (p.isAnnotationPresent(annotationType)) { |
||||
return p; |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public boolean hasIdProperty() { |
||||
return false; |
||||
} |
||||
|
||||
@Override |
||||
public boolean hasVersionProperty() { |
||||
return getVersionProperty() != null; |
||||
} |
||||
|
||||
@Override |
||||
public Class<T> getType() { |
||||
return this.type; |
||||
} |
||||
|
||||
@Override |
||||
public Object getTypeAlias() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public TypeInformation<T> getTypeInformation() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public void doWithProperties(PropertyHandler<MongoPersistentProperty> handler) { |
||||
|
||||
for (MongoPersistentProperty p : this.properties) { |
||||
handler.doWithPersistentProperty(p); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public void doWithProperties(SimplePropertyHandler handler) { |
||||
|
||||
for (MongoPersistentProperty p : this.properties) { |
||||
handler.doWithPersistentProperty(p); |
||||
} |
||||
} |
||||
|
||||
@Override |
||||
public void doWithAssociations(AssociationHandler<MongoPersistentProperty> handler) { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public void doWithAssociations(SimpleAssociationHandler handler) { |
||||
|
||||
} |
||||
|
||||
@SuppressWarnings("unchecked") |
||||
@Override |
||||
public <A extends Annotation> A findAnnotation(Class<A> annotationType) { |
||||
return (A) this.annotations.get(annotationType); |
||||
} |
||||
|
||||
@Override |
||||
public String getCollection() { |
||||
return this.collection; |
||||
} |
||||
|
||||
/** |
||||
* Simple builder to create {@link MongoPersistentEntityTestDummy} with defined properties. |
||||
* |
||||
* @author Christoph Strobl |
||||
* @param <T> |
||||
*/ |
||||
public static class MongoPersistentEntityDummyBuilder<T> { |
||||
|
||||
private MongoPersistentEntityTestDummy<T> instance; |
||||
|
||||
private MongoPersistentEntityDummyBuilder(Class<T> type) { |
||||
this.instance = new MongoPersistentEntityTestDummy<T>(); |
||||
this.instance.type = type; |
||||
} |
||||
|
||||
@SuppressWarnings({ "rawtypes", "unchecked" }) |
||||
public static <T> MongoPersistentEntityDummyBuilder<T> forClass(Class<T> type) { |
||||
return new MongoPersistentEntityDummyBuilder(type); |
||||
} |
||||
|
||||
public MongoPersistentEntityDummyBuilder<T> withName(String name) { |
||||
this.instance.name = name; |
||||
return this; |
||||
} |
||||
|
||||
public MongoPersistentEntityDummyBuilder<T> and(MongoPersistentProperty property) { |
||||
this.instance.properties.add(property); |
||||
return this; |
||||
} |
||||
|
||||
public MongoPersistentEntityDummyBuilder<T> withCollection(String collection) { |
||||
this.instance.collection = collection; |
||||
return this; |
||||
} |
||||
|
||||
public MongoPersistentEntityDummyBuilder<T> and(Annotation annotation) { |
||||
this.instance.annotations.put(annotation.annotationType(), annotation); |
||||
return this; |
||||
} |
||||
|
||||
public MongoPersistentEntityTestDummy<T> build() { |
||||
return this.instance; |
||||
} |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public String getLanguage() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public MongoPersistentProperty getTextScoreProperty() { |
||||
return null; |
||||
} |
||||
|
||||
@Override |
||||
public boolean hasTextScoreProperty() { |
||||
return false; |
||||
} |
||||
} |
||||
Loading…
Reference in new issue