Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez <lluis@novell.com>2007-12-04 13:57:01 +0300
committerLluis Sanchez <lluis@novell.com>2007-12-04 13:57:01 +0300
commit3693ff8d3f9ad1ab442a0bf8042017129bede938 (patch)
tree474e1d6f11f368f9b70489821343dd621c326f67 /extras/JavaBinding/JavaLanguageBinding.cs
parentee48143fa7ee41b73972e586bf0ef8609d8b3039 (diff)
Directory reorganization
svn path=/branches/monodevelop/reorg/; revision=90646
Diffstat (limited to 'extras/JavaBinding/JavaLanguageBinding.cs')
-rw-r--r--extras/JavaBinding/JavaLanguageBinding.cs146
1 files changed, 146 insertions, 0 deletions
diff --git a/extras/JavaBinding/JavaLanguageBinding.cs b/extras/JavaBinding/JavaLanguageBinding.cs
new file mode 100644
index 0000000000..443b4e7fee
--- /dev/null
+++ b/extras/JavaBinding/JavaLanguageBinding.cs
@@ -0,0 +1,146 @@
+// JavaLanguageBinding.cs
+//
+// This file was derived from a file from #Develop.
+//
+// Copyright (C) 2001-2007 Mike Krüger <mkrueger@novell.com>
+//
+// 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.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+using System;
+using System.IO;
+using System.Diagnostics;
+using System.Collections;
+using System.Reflection;
+using System.Resources;
+using System.Xml;
+using System.CodeDom.Compiler;
+
+using MonoDevelop.Projects;
+using MonoDevelop.Core.Gui;
+using MonoDevelop.Core;
+using MonoDevelop.Projects.Parser;
+using MonoDevelop.Projects.CodeGeneration;
+
+namespace JavaBinding
+{
+ /// <summary>
+ /// This class describes the main functionalaty of a language binding
+ /// </summary>
+ public class JavaLanguageBinding : IDotNetLanguageBinding
+ {
+ internal const string LanguageName = "Java";
+ static GlobalProperties props = new GlobalProperties ();
+
+ public static GlobalProperties Properties {
+ get { return props; }
+ }
+
+ public string Language {
+ get {
+ return LanguageName;
+ }
+ }
+
+ public bool IsSourceCodeFile (string fileName)
+ {
+ return Path.GetExtension (fileName) == ".java";
+ }
+
+ public ICompilerResult Compile (ProjectFileCollection projectFiles, ProjectReferenceCollection references, DotNetProjectConfiguration configuration, IProgressMonitor monitor)
+ {
+ return IKVMCompilerManager.Compile (projectFiles, references, configuration, monitor);
+ }
+
+ public void GenerateMakefile (Project project, Combine parentCombine)
+ {
+ // FIXME: dont abort for now
+ // throw new NotImplementedException ();
+ }
+
+ public ICloneable CreateCompilationParameters (XmlElement projectOptions)
+ {
+ JavaCompilerParameters parameters = new JavaCompilerParameters ();
+ if (Properties.Classpath.Length > 0)
+ parameters.ClassPath = Properties.Classpath;
+
+ parameters.Compiler = Properties.CompilerType;
+ parameters.CompilerPath = Properties.CompilerCommand;
+
+ if (projectOptions != null) {
+ if (projectOptions.Attributes["MainClass"] != null) {
+ parameters.MainClass = projectOptions.GetAttribute ("MainClass");
+ }
+ if (projectOptions.Attributes["ClassPath"] != null) {
+ parameters.ClassPath += ":" + projectOptions.GetAttribute ("ClassPath");
+ }
+ }
+ return parameters;
+ }
+
+ // http://www.nbirn.net/Resources/Developers/Conventions/Commenting/Java_Comments.htm#CommentBlock
+ public string CommentTag
+ {
+ get { return "//"; }
+ }
+
+ public CodeDomProvider GetCodeDomProvider ()
+ {
+ return null;
+ }
+
+ public string GetFileName (string baseName)
+ {
+ return baseName + ".java";
+ }
+
+ public IParser Parser {
+ get { return null; }
+ }
+
+ public IRefactorer Refactorer {
+ get { return null; }
+ }
+
+ public ClrVersion[] GetSupportedClrVersions ()
+ {
+ return new ClrVersion[] { ClrVersion.Net_1_1 };
+ }
+ }
+
+ public class GlobalProperties
+ {
+ Properties props = (Properties) PropertyService.Get ("JavaBinding.GlobalProps", new Properties ());
+
+ public string IkvmPath {
+ get { return props.Get ("IkvmPath", ""); }
+ set { props.Set ("IkvmPath", value != null ? value : ""); }
+ }
+
+ public string CompilerCommand {
+ get { return props.Get ("CompilerCommand", ""); }
+ set { props.Set ("CompilerCommand", value != null ? value : "javac"); }
+ }
+
+ public JavaCompiler CompilerType {
+ get { return (JavaCompiler) props.Get ("CompilerType", 0); }
+ set { props.Set ("CompilerType", (int)value); }
+ }
+
+ public string Classpath {
+ get { return props.Get ("Classpath", ""); }
+ set { props.Set ("Classpath", value != null ? value : ""); }
+ }
+ }
+}