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

templates.header.txt Maven / Gradle / Ivy

There is a newer version: 6.0.0
Show newest version
/*
 * 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.
 */

// GENERATED CODE - PLEASE DO NOT EDIT

${generatedPackage}

public final class ${generatedClassName}${genericTypes} implements ${interfaceFullName} {

    @SuppressWarnings("ConstantConditions")
    public ${generatedClassName}(@org.jetbrains.annotations.NotNull final com.github.dm.jrt.core.InvocationTarget target,
            @org.jetbrains.annotations.NotNull final com.github.dm.jrt.builder.InvocationConfiguration invocationConfiguration,
            @org.jetbrains.annotations.NotNull final com.github.dm.jrt.builder.ProxyConfiguration proxyConfiguration) {

        if (!target.isSameTypeOf(${classErasure}.class)) {

            throw new IllegalArgumentException("the invocation target must be the class or an instance of " +
                    "${classFullName}");
        }

        if (invocationConfiguration == null) {

            throw new NullPointerException("the invocation configuration must not be null");
        }

        if (proxyConfiguration == null) {

            throw new NullPointerException("the proxy configuration must not be null");
        }

        ${routineFieldsInit}
    }

    @org.jetbrains.annotations.NotNull
    public static ${genericTypes} com.github.dm.jrt.proxy.builder.ProxyObjectBuilder<${interfaceFullName}> on(@org.jetbrains.annotations.NotNull final com.github.dm.jrt.core.InvocationTarget.InstanceInvocationTarget target) {

        return new ProxyObjectBuilder${genericTypes}(target);
    }

    @org.jetbrains.annotations.NotNull
    public static ${genericTypes} com.github.dm.jrt.proxy.builder.ProxyObjectBuilder<${interfaceFullName}> onClass() {

        return new ProxyObjectBuilder${genericTypes}(com.github.dm.jrt.core.InvocationTarget.classOfType(${classErasure}.class));
    }

    private static class ProxyObjectBuilder${genericTypes} extends com.github.dm.jrt.proxy.builder.AbstractProxyObjectBuilder<${interfaceFullName}> {

        private final com.github.dm.jrt.core.InvocationTarget mTarget;

        private ProxyObjectBuilder(@org.jetbrains.annotations.NotNull final com.github.dm.jrt.core.InvocationTarget target) {

            mTarget = target;
        }

        @Override
        @org.jetbrains.annotations.NotNull
        protected Class getInterfaceClass() {

            return ${interfaceErasure}.class;
        }

        @Override
        @org.jetbrains.annotations.Nullable
        protected Object getTarget() {

            return mTarget.getTarget();
        }

        @Override
        @org.jetbrains.annotations.NotNull
        protected ${interfaceFullName} newProxy(
                @org.jetbrains.annotations.NotNull final com.github.dm.jrt.builder.InvocationConfiguration invocationConfiguration,
                @org.jetbrains.annotations.NotNull final com.github.dm.jrt.builder.ProxyConfiguration proxyConfiguration) {

            return new ${generatedClassName}${genericTypes}(mTarget, invocationConfiguration, proxyConfiguration);
        }
    }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy