All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.datanucleus.enhancer.JPAEnhancementNamer Maven / Gradle / Ivy

Go to download

DataNucleus Core provides the primary components of a heterogenous Java persistence solution. It supports persistence API's being layered on top of the core functionality.

There is a newer version: 6.0.9
Show newest version
/**********************************************************************
Copyright (c) 2012 Andy Jefferson and others. All rights reserved.
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.

Contributors:
    ...
**********************************************************************/
package org.datanucleus.enhancer;

/**
 * Definition of enhancement naming for use with the JPA/Jakarta APIs.
 * Follows the JDO enhancement method except for the a couple of exceptions that can be thrown direct from 
 * enhanced methods, whereby JPA/Jakarta will throw IllegalAccessException (when accessing a field that wasnt
 * detached), and IllegalStateException (when invoking a method inappropriately - shouldn't happen ever).
 */
public class JPAEnhancementNamer extends JDOEnhancementNamer
{
    private static JPAEnhancementNamer instance = null;

    public static JPAEnhancementNamer getInstance()
    {
        if (instance == null)
        {
            instance = new JPAEnhancementNamer();
        }
        return instance;
    }

    protected JPAEnhancementNamer()
    {
    }

    // TODO Really we ought to declare some methods as throwing these since not RuntimeException
    private static final String ACN_DetachedFieldAccessException = IllegalAccessException.class.getName().replace('.', '/');
    private static final String ACN_FatalInternalException = IllegalStateException.class.getName().replace('.', '/');

    /* (non-Javadoc)
     * @see org.datanucleus.enhancer.jdo.JDOEnhancementNamer#getDetachedFieldAccessExceptionAsmClassName()
     */
    @Override
    public String getDetachedFieldAccessExceptionAsmClassName()
    {
        return ACN_DetachedFieldAccessException;
    }

    /* (non-Javadoc)
     * @see org.datanucleus.enhancer.jdo.JDOEnhancementNamer#getFatalInternalExceptionAsmClassName()
     */
    @Override
    public String getFatalInternalExceptionAsmClassName()
    {
        return ACN_FatalInternalException;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy