/*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * copyright (C) 2004-2006 * * Umbrello UML Modeller Authors * ***************************************************************************/ /* This code generated by: * Author : thomas * Date : Thu Jun 19 2003 */ // own header #include "javacodegenerator.h" // qt/kde includes #include #include #include #include #include // local includes #include "javacodecomment.h" #include "codeviewerdialog.h" #include "../uml.h" const bool JavaCodeGenerator::DEFAULT_BUILD_ANT_DOC = false; // Constructors/Destructors // JavaCodeGenerator::JavaCodeGenerator (TQDomElement & elem) : CodeGenerator(elem) { init(); } JavaCodeGenerator::JavaCodeGenerator () { init(); } JavaCodeGenerator::~JavaCodeGenerator ( ) { } // // Methods // // Accessor methods // // return our language Uml::Programming_Language JavaCodeGenerator::getLanguage() { return Uml::pl_Java; } /** * Set the value of m_createANTBuildFile * @param new_var the new value of m_createANTBuildFile */ void JavaCodeGenerator::setCreateANTBuildFile ( bool buildIt) { m_createANTBuildFile = buildIt; CodeDocument * antDoc = findCodeDocumentByID("ANTDOC"); if (antDoc) antDoc->setWriteOutCode(buildIt); } /** * Get the value of m_createANTBuildFile * @return the value of m_createANTBuildFile */ bool JavaCodeGenerator::getCreateANTBuildFile ( ) { return m_createANTBuildFile; } // In the Java version, we make the ANT build file also available. CodeViewerDialog * JavaCodeGenerator::getCodeViewerDialog ( TQWidget* parent, CodeDocument *doc, Settings::CodeViewerState state) { CodeViewerDialog *dialog = new CodeViewerDialog(parent, doc, state); if(getCreateANTBuildFile()) dialog->addCodeDocument(findCodeDocumentByID("ANTDOC")); return dialog; } JavaCodeGenerationPolicy * JavaCodeGenerator::getJavaPolicy() { return dynamic_cast(UMLApp::app()->getPolicyExt()); } bool JavaCodeGenerator::getAutoGenerateAttribAccessors ( ) { return getJavaPolicy()->getAutoGenerateAttribAccessors (); } bool JavaCodeGenerator::getAutoGenerateAssocAccessors ( ) { return getJavaPolicy()->getAutoGenerateAssocAccessors (); } TQString JavaCodeGenerator::getListFieldClassName () { return TQString("Vector"); } // Other methods // // IF the type is "string" we need to declare it as // the Java Object "String" (there is no string primative in Java). // Same thing again for "bool" to "boolean" TQString JavaCodeGenerator::fixTypeName(const TQString &string) { if (string.isEmpty() || string.contains(TQRegExp("^\\s+$"))) return "void"; if (string == "string") return "String"; if (string == "bool") return "boolean"; return cleanName(string); } /** * @return JavaANTCodeDocument */ JavaANTCodeDocument * JavaCodeGenerator::newANTCodeDocument ( ) { return new JavaANTCodeDocument(); } /** * @return ClassifierCodeDocument * @param classifier */ CodeDocument * JavaCodeGenerator::newClassifierCodeDocument ( UMLClassifier * c) { JavaClassifierCodeDocument * doc = new JavaClassifierCodeDocument(c); doc->initCodeClassFields(); return doc; } void JavaCodeGenerator::init() { // load Classifier documents from parent document //initFromParentDocument(); // add in an ANT document JavaANTCodeDocument * buildDoc = newANTCodeDocument( ); addCodeDocument(buildDoc); // set our 'writeout' policy for that code document setCreateANTBuildFile(DEFAULT_BUILD_ANT_DOC); } TQStringList JavaCodeGenerator::defaultDatatypes() { TQStringList l; l.append("int"); l.append("char"); l.append("boolean"); l.append("float"); l.append("double"); l.append("byte"); l.append("short"); l.append("long"); l.append("String"); return l; } const TQStringList JavaCodeGenerator::reservedKeywords() const { static TQStringList keywords; if (keywords.isEmpty()) { keywords << "abstract" << "AbstractMethodError" << "ArithmeticException" << "ArrayIndexOutOfBoundsException" << "ArrayStoreException" << "assert" << "AssertionError" << "auto" << "boolean" << "Boolean" << "break" << "byte" << "Byte" << "catch" << "char" << "Character" << "CharSequence" << "Class" << "ClassCastException" << "ClassCircularityError" << "ClassFormatError" << "ClassLoader" << "ClassNotFoundException" << "clone" << "Cloneable" << "CloneNotSupportedException" << "Comparable" << "Compiler" << "const" << "continue" << "default" << "delete" << "do" << "double" << "Double" << "else" << "enum" << "equals" << "Error" << "Exception" << "ExceptionInInitializerError" << "extends" << "extern" << "false" << "final" << "finalize" << "finally" << "float" << "Float" << "for" << "friend" << "getClass" << "goto" << "hashCode" << "if" << "IllegalAccessError" << "IllegalAccessException" << "IllegalArgumentException" << "IllegalMonitorStateException" << "IllegalStateException" << "IllegalThreadStateException" << "implements" << "import" << "IncompatibleClassChangeError" << "IndexOutOfBoundsException" << "InheritableThreadLocal" << "inline" << "instanceof" << "InstantiationError" << "InstantiationException" << "int" << "Integer" << "interface" << "InternalError" << "InterruptedException" << "LinkageError" << "long" << "Long" << "Math" << "native" << "NegativeArraySizeException" << "new" << "nextgroup=javaUserLabelRef" << "NoClassDefFoundError" << "NoSuchFieldError" << "NoSuchFieldException" << "NoSuchMethodError" << "NoSuchMethodException" << "notify" << "notifyAll" << "null" << "NullPointerException" << "Number" << "NumberFormatException" << "Object" << "operator" << "OutOfMemoryError" << "package" << "Package" << "private" << "Process" << "protected" << "public" << "redeclared" << "register" << "return" << "Runnable" << "Runtime" << "RuntimeException" << "RuntimePermission" << "SecurityException" << "SecurityManager" << "serializable" << "short" << "Short" << "signed" << "sizeof" << "skipwhite" << "StackOverflowError" << "StackTraceElement" << "static" << "strictfp" << "StrictMath" << "String" << "StringBuffer" << "StringIndexOutOfBoundsException" << "struct" << "super" << "switch" << "synchronized" << "template" << "this" << "Thread" << "ThreadDeath" << "ThreadGroup" << "ThreadLocal" << "throw" << "Throwable" << "throws" << "toString" << "transient" << "true" << "try" << "typedef" << "union" << "UnknownError" << "UnsatisfiedLinkError" << "unsigned" << "UnsupportedClassVersionError" << "UnsupportedOperationException" << "VerifyError" << "VirtualMachineError" << "void" << "Void" << "volatile" << "wait" << "while"; } return keywords; } #include "javacodegenerator.moc"