net.sf.mmm.code.impl.java.expression.literal.JavaLiteralClass Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mmm-code-java-impl Show documentation
Show all versions of mmm-code-java-impl Show documentation
Implementation of mmm-code-api for Java.
/* Copyright (c) The m-m-m Team, Licensed under the Apache License, Version 2.0
* http://www.apache.org/licenses/LICENSE-2.0 */
package net.sf.mmm.code.impl.java.expression.literal;
import net.sf.mmm.code.api.expression.CodeLiteral;
/**
* Implementation of {@link JavaLiteral} for {@link Class} literal.
*
* @param the type of the {@link Class} {@code value}.
* @author Joerg Hohwiller (hohwille at users.sourceforge.net)
* @since 1.0.0
*/
public final class JavaLiteralClass extends JavaLiteral> {
private final boolean unqualified;
private JavaLiteralClass(Class value, boolean unqualified) {
super(value);
this.unqualified = unqualified;
}
@Override
public JavaLiteralClass withValue(Class newValue) {
return new JavaLiteralClass<>(newValue, this.unqualified);
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public Class extends Class> getJavaClass() {
return (Class) Class.class;
}
@Override
public String getSourceCode() {
String name;
if (this.unqualified) {
name = getValue().getSimpleName();
} else {
name = getValue().getName();
}
return name + ".class";
}
@Override
public boolean isPrimitive() {
return false;
}
/**
* @param the type of the {@link Class} {@code value}.
* @param value the literal value. May not be {@code null}.
* @return the {@link CodeLiteral} for the given {@code value}.
*/
public static JavaLiteralClass of(Class value) {
return of(value, false);
}
/**
* @param the type of the {@link Class} {@code value}.
* @param value the literal value. May not be {@code null}.
* @param unqualified - {@code true} to use the {@link Class#getSimpleName() simple name}, {@code false}
* otherwise (for {@link Class#getName() qualified name}).
* @return the {@link CodeLiteral} for the given {@code value}.
*/
public static JavaLiteralClass of(Class value, boolean unqualified) {
return new JavaLiteralClass<>(value, unqualified);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy