1 package org.simantics.scl.compiler.constants;
3 import org.simantics.scl.compiler.internal.codegen.utils.MethodBuilder;
4 import org.simantics.scl.compiler.internal.codegen.utils.TransientClassBuilder;
5 import org.simantics.scl.compiler.types.Type;
7 public class ClassConstant extends Constant {
10 public ClassConstant(Type type, Type clazz) {
16 public void push(MethodBuilder mb) {
17 mb.loadConstant(mb.getJavaTypeTranslator().toTypeDesc(clazz));
21 public String toString() {
22 return "(" + clazz.toString() + ")";
26 public int hashCode() {
27 return clazz.hashCode();
31 public boolean equals(Object obj) {
36 if (getClass() != obj.getClass())
38 ClassConstant other = (ClassConstant) obj;
39 return type.equals(other.type) && clazz.equals(other.clazz);
43 public Object realizeValue(TransientClassBuilder classBuilder) {
44 return classBuilder.javaTypeTranslator.toTypeDesc(clazz).toClass();