001package org.unix4j.codegen.def; 002 003 004public class TypeDef extends AbstractElementDef { 005 006 public TypeDef(Class<?> type) { 007 this(type.getSimpleName(), new PackageDef(type.getPackage())); 008 } 009 public TypeDef(String fullyQualifiedClassName) { 010 this(getTypeName(fullyQualifiedClassName), getPackageName(fullyQualifiedClassName)); 011 } 012 public TypeDef(String typeName, String packageName) { 013 this(typeName, new PackageDef(packageName)); 014 } 015 public TypeDef(String typeName, PackageDef pkg) { 016 this.pkg = pkg; 017 this.simpleName = typeName; 018 } 019 private static String getTypeName(String fullyQualifiedClassName) { 020 final int lastDot = fullyQualifiedClassName.lastIndexOf('.'); 021 return fullyQualifiedClassName.substring(lastDot + 1);//also works if there is no dot 022 } 023 private static String getPackageName(String fullyQualifiedClassName) { 024 final int lastDot = fullyQualifiedClassName.lastIndexOf('.'); 025 return lastDot < 0 ? fullyQualifiedClassName : fullyQualifiedClassName.substring(0, lastDot); 026 } 027 public final PackageDef pkg; 028 public final String simpleName; 029}