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

spoon.reflect.declaration.CtUsedService Maven / Gradle / Ivy

Go to download

Spoon is a tool for meta-programming, analysis and transformation of Java programs.

There is a newer version: 11.1.1-beta-14
Show newest version
/*
 * SPDX-License-Identifier: (MIT OR CECILL-C)
 *
 * Copyright (C) 2006-2023 INRIA and contributors
 *
 * Spoon is available either under the terms of the MIT License (see LICENSE-MIT.txt) or the Cecill-C License (see LICENSE-CECILL-C.txt). You as the user are entitled to choose the terms under which to adopt Spoon.
 */
package spoon.reflect.declaration;

import spoon.reflect.annotations.PropertyGetter;
import spoon.reflect.annotations.PropertySetter;
import spoon.reflect.path.CtRole;
import spoon.reflect.reference.CtTypeReference;

/**
 * Represents the declaration of a used service in a {@link CtModule}
 *
 * The uses directive specifies a service for which the current module may discover providers via java.util.ServiceLoader.
 * The service must be a class type, an interface type, or an annotation type. It is a compile-time error if a uses directive specifies an enum type as the service.
 * The service may be declared in the current module or in another module. If the service is not declared in the current module, then the service must be accessible to code in the current module, or a compile-time error occurs.
 * It is a compile-time error if more than one uses directive in a module declaration specifies the same service.
 *
 * Example:
 *
 * 
 *     uses java.logging.Logger;
 * 
*/ public interface CtUsedService extends CtModuleDirective { @PropertyGetter(role = CtRole.SERVICE_TYPE) CtTypeReference getServiceType(); @PropertySetter(role = CtRole.SERVICE_TYPE) T setServiceType(CtTypeReference providingType); @Override CtUsedService clone(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy