public <T> boolean map(Class<? super T> baseClass, Class<T> typeClass)
    {
        assert baseClass != null && typeClass != null;

        if (typeClass.isInterface()
                || Modifier.isAbstract(typeClass.getModifiers()))
        {
            throw new IllegalArgumentException(typeClass
                    + " cannot be an interface/abstract class.");
        }

        final HasSchema<?> last = pojoMapping.putIfAbsent(baseClass.getName(),
                new Mapped<T>(baseClass, typeClass, this));

        return last == null
                || (last instanceof Mapped<?> && ((Mapped<?>) last).typeClass == typeClass);
    }
Used by {@link RuntimeSchema#map(Class, Class)}.
protostuff-runtime/src/main/java/io/protostuff/runtime/DefaultIdStrategy.java