If you think the Android project spring-sync listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
/*
* Copyright 2014 the original author or authors.
*//www.java2s.com
* 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.sync.diffsync;
import java.util.HashMap;
import java.util.Map;
import org.springframework.sync.Patch;
/**
* Registry for looking up {@link PersistenceCallback}s to be used in the course of applying a {@link Patch} via
* Differential Synchronization.
*
* @author Craig Walls
*/publicclass PersistenceCallbackRegistry {
private Map<String, PersistenceCallback<?>> persistenceCallbacks = new HashMap<String, PersistenceCallback<?>>();
public PersistenceCallbackRegistry() {}
/**
* Adds a {@link PersistenceCallback} to the registry with a key that is pluralized by the pluralize() method.
* @param persistenceCallback the {@link PersistenceCallback} to add to the registry.
*/publicvoid addPersistenceCallback(PersistenceCallback<?> persistenceCallback) {
Class<?> entityType = persistenceCallback.getEntityType();
String key = pluralize(entityType.getSimpleName());
persistenceCallbacks.put(key, persistenceCallback);
}
/**
* Looks up a {@link PersistenceCallback} from the registry.
* @param key the key that the {@link PersistenceCallback} has been registered under.
* @return the {@link PersistenceCallback}
*/public PersistenceCallback<?> findPersistenceCallback(String key) {
return persistenceCallbacks.get(key);
}
/**
* Pluralizes an entity's type name. Default implementation is to naively add an 's' to the end of the given String.
* Override to implement a more elegant pluralization technique.
* @param entityTypeName the entity type name to be pluralized.
* @return the pluralized type name.
*/protected String pluralize(String entityTypeName) {
return entityTypeName.toLowerCase() + "s";
}
}