From 2bb372a8679d8acade2d7b362831a7b117b14d73 Mon Sep 17 00:00:00 2001 From: David Inglis Date: Tue, 19 Aug 2003 02:21:49 +0000 Subject: [PATCH] new make target provider/make target/listener/event --- .../cdt/make/core/IMakeBuilderInfo.java | 5 +- .../eclipse/cdt/make/core/IMakeTarget.java | 24 +++++++ .../cdt/make/core/IMakeTargetListener.java | 16 +++++ .../cdt/make/core/IMakeTargetProvider.java | 24 +++++++ .../eclipse/cdt/make/core/MakeBuilder.java | 5 +- .../eclipse/cdt/make/core/MakeCorePlugin.java | 14 +++- .../cdt/make/core/MakeProjectNature.java | 5 +- .../cdt/make/core/MakeScannerInfo.java | 16 +++-- .../cdt/make/core/MakeScannerProvider.java | 5 +- .../cdt/make/core/MakeTargetEvent.java | 39 +++++++++++ .../make/internal/core/BuildInfoFactory.java | 5 +- .../cdt/make/internal/core/MakeProject.java | 4 +- .../internal/core/MakeTargetProvider.java | 64 +++++++++++++++++++ 13 files changed, 200 insertions(+), 26 deletions(-) create mode 100644 build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTarget.java create mode 100644 build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTargetListener.java create mode 100644 build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTargetProvider.java create mode 100644 build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeTargetEvent.java create mode 100644 build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTargetProvider.java diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeBuilderInfo.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeBuilderInfo.java index 664645ca183..890ebf8cbec 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeBuilderInfo.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeBuilderInfo.java @@ -1,6 +1,5 @@ -package org.eclipse.cdt.make.core; /********************************************************************** - * Copyright (c) 2002,2003 Rational Software Corporation and others. + * Copyright (c) 2002,2003 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at @@ -8,8 +7,8 @@ package org.eclipse.cdt.make.core; * * Contributors: * QNX Software Systems - Initial API and implementation - * IBM Rational Software - Initial API and implementation ***********************************************************************/ +package org.eclipse.cdt.make.core; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTarget.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTarget.java new file mode 100644 index 00000000000..9f77544345e --- /dev/null +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTarget.java @@ -0,0 +1,24 @@ +/********************************************************************** + * Copyright (c) 2002,2003 QNX Software Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * QNX Software Systems - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.make.core; + +import org.eclipse.core.resources.IContainer; +import org.eclipse.core.runtime.IPath; + +public interface IMakeTarget { + IMakeTargetProvider getProvider(); + String getName(); + IContainer getContainer(); + boolean isStopOnError(); + boolean isDefaultBuildCmd(); + IPath getBuildCommand(); + String getBuildArguments(); +} diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTargetListener.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTargetListener.java new file mode 100644 index 00000000000..63e6b66df46 --- /dev/null +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTargetListener.java @@ -0,0 +1,16 @@ +/********************************************************************** + * Copyright (c) 2002,2003 QNX Software Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * QNX Software Systems - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.make.core; + +public interface IMakeTargetListener { + + void targetChanged(MakeTargetEvent event); +} diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTargetProvider.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTargetProvider.java new file mode 100644 index 00000000000..a27cc8ac3bc --- /dev/null +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/IMakeTargetProvider.java @@ -0,0 +1,24 @@ +/********************************************************************** + * Copyright (c) 2002,2003 QNX Software Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * QNX Software Systems - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.make.core; + +import org.eclipse.core.resources.IContainer; + +public interface IMakeTargetProvider { + + IMakeTarget[] getTargets(); + IMakeTarget[] getTargets(IContainer container); + + IMakeBuilderInfo getBuilderInfo(IMakeTarget target); + + void addListener(IMakeTargetListener listener); + void removeListener(IMakeTargetListener listener); +} diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java index 8dfb5b47613..9578a9225ad 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeBuilder.java @@ -1,6 +1,5 @@ -package org.eclipse.cdt.make.core; /********************************************************************** - * Copyright (c) 2002,2003 Rational Software Corporation and others. + * Copyright (c) 2002,2003 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at @@ -8,8 +7,8 @@ package org.eclipse.cdt.make.core; * * Contributors: * QNX Software Systems - Initial API and implementation - * IBM Rational Software - Initial API and implementation ***********************************************************************/ +package org.eclipse.cdt.make.core; import java.io.IOException; import java.io.OutputStream; diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeCorePlugin.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeCorePlugin.java index d658e4f22ff..9444ea42e94 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeCorePlugin.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeCorePlugin.java @@ -1,6 +1,5 @@ -package org.eclipse.cdt.make.core; /********************************************************************** - * Copyright (c) 2002,2003 Rational Software Corporation and others. + * Copyright (c) 2002,2003 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at @@ -8,8 +7,8 @@ package org.eclipse.cdt.make.core; * * Contributors: * QNX Software Systems - Initial API and implementation - * IBM Rational Software - Initial API and implementation ***********************************************************************/ +package org.eclipse.cdt.make.core; import java.text.MessageFormat; import java.util.Map; @@ -18,6 +17,7 @@ import java.util.ResourceBundle; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.make.internal.core.BuildInfoFactory; +import org.eclipse.cdt.make.internal.core.MakeTargetProvider; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPluginDescriptor; @@ -29,6 +29,7 @@ import org.eclipse.core.runtime.Preferences; * The main plugin class to be used in the desktop. */ public class MakeCorePlugin extends Plugin { + private IMakeTargetProvider fTargetProvider; public static final String OLD_BUILDER_ID = "org.eclipse.cdt.core.cbuilder"; //$NON-NLS-1$ //The shared instance. private static MakeCorePlugin plugin; @@ -118,4 +119,11 @@ public class MakeCorePlugin extends Plugin { public static IMakeBuilderInfo create(Map args, String builderID) { return BuildInfoFactory.create(args, builderID); } + + public IMakeTargetProvider getTargetProvider() { + if ( fTargetProvider == null) { + fTargetProvider = new MakeTargetProvider(); + } + return fTargetProvider; + } } diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeProjectNature.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeProjectNature.java index a4d38523ede..987a21aa5f5 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeProjectNature.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeProjectNature.java @@ -1,6 +1,5 @@ -package org.eclipse.cdt.make.core; /********************************************************************** - * Copyright (c) 2002,2003 Rational Software Corporation and others. + * Copyright (c) 2002,2003 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at @@ -8,8 +7,8 @@ package org.eclipse.cdt.make.core; * * Contributors: * QNX Software Systems - Initial API and implementation - * IBM Rational Software - Initial API and implementation ***********************************************************************/ +package org.eclipse.cdt.make.core; import org.eclipse.core.resources.ICommand; import org.eclipse.core.resources.IProject; diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeScannerInfo.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeScannerInfo.java index f6d9ea04d4c..2f8168f81ec 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeScannerInfo.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeScannerInfo.java @@ -1,9 +1,13 @@ -/* - * Created on Aug 14, 2003 - * - * To change the template for this generated file go to - * Window>Preferences>Java>Code Generation>Code and Comments - */ +/********************************************************************** + * Copyright (c) 2002,2003 QNX Software Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * QNX Software Systems - Initial API and implementation +***********************************************************************/ package org.eclipse.cdt.make.core; import java.util.ArrayList; diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeScannerProvider.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeScannerProvider.java index f48d0ebb63e..18b8b2e52d1 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeScannerProvider.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeScannerProvider.java @@ -1,6 +1,5 @@ -package org.eclipse.cdt.make.core; /********************************************************************** - * Copyright (c) 2002,2003 Rational Software Corporation and others. + * Copyright (c) 2002,2003 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at @@ -8,8 +7,8 @@ package org.eclipse.cdt.make.core; * * Contributors: * QNX Software Systems - Initial API and implementation - * IBM Rational Software - Initial API and implementation ***********************************************************************/ +package org.eclipse.cdt.make.core; import java.util.ArrayList; import java.util.Arrays; diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeTargetEvent.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeTargetEvent.java new file mode 100644 index 00000000000..7f227596fdb --- /dev/null +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeTargetEvent.java @@ -0,0 +1,39 @@ +/********************************************************************** + * Copyright (c) 2002,2003 QNX Software Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * QNX Software Systems - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.make.core; + +import java.util.EventObject; + +public class MakeTargetEvent extends EventObject { + public final int TARGET_ADD = 1; + public final int TARGET_CHANGED = 2; + public final int TARGET_REMOVED = 3; + + IMakeTarget target; + int type; + + /** + * @param source + */ + public MakeTargetEvent(Object source, int type, IMakeTarget target) { + super(source); + this.type = type; + this.target = target; + } + + public int getType() { + return type; + } + + public IMakeTarget getTarget() { + return target; + } +} \ No newline at end of file diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java index 9a35c9c5cc4..6ba49d43f7d 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java @@ -1,6 +1,5 @@ -package org.eclipse.cdt.make.internal.core; /********************************************************************** - * Copyright (c) 2002,2003 Rational Software Corporation and others. + * Copyright (c) 2002,2003 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at @@ -8,8 +7,8 @@ package org.eclipse.cdt.make.internal.core; * * Contributors: * QNX Software Systems - Initial API and implementation - * IBM Rational Software - Initial API and implementation ***********************************************************************/ +package org.eclipse.cdt.make.internal.core; import java.util.Map; diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeProject.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeProject.java index 7da99037981..671c4a14e98 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeProject.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeProject.java @@ -1,6 +1,5 @@ -package org.eclipse.cdt.make.internal.core; /********************************************************************** - * Copyright (c) 2002,2003 Rational Software Corporation and others. + * Copyright (c) 2002,2003 QNX Software Systems and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at @@ -9,6 +8,7 @@ package org.eclipse.cdt.make.internal.core; * Contributors: * QNX Software Systems - Initial API and implementation ***********************************************************************/ +package org.eclipse.cdt.make.internal.core; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.ICDescriptor; diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTargetProvider.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTargetProvider.java new file mode 100644 index 00000000000..9c7077f203e --- /dev/null +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTargetProvider.java @@ -0,0 +1,64 @@ +/********************************************************************** + * Copyright (c) 2002,2003 QNX Software Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * QNX Software Systems - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.make.internal.core; + +import org.eclipse.cdt.make.core.IMakeBuilderInfo; +import org.eclipse.cdt.make.core.IMakeTarget; +import org.eclipse.cdt.make.core.IMakeTargetListener; +import org.eclipse.cdt.make.core.IMakeTargetProvider; +import org.eclipse.core.resources.IContainer; + +public class MakeTargetProvider implements IMakeTargetProvider { + + public MakeTargetProvider() { + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.make.core.IMakeTargetProvider#getTargets() + */ + public IMakeTarget[] getTargets() { + // dinglis-TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.make.core.IMakeTargetProvider#getTargets(org.eclipse.core.resources.IContainer) + */ + public IMakeTarget[] getTargets(IContainer container) { + // dinglis-TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.make.core.IMakeTargetProvider#getBuilderInfo(org.eclipse.cdt.make.core.IMakeTarget) + */ + public IMakeBuilderInfo getBuilderInfo(IMakeTarget target) { + // dinglis-TODO Auto-generated method stub + return null; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.make.core.IMakeTargetProvider#addListener(org.eclipse.cdt.make.core.IMakeTargetListener) + */ + public void addListener(IMakeTargetListener listener) { + // dinglis-TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.make.core.IMakeTargetProvider#removeListener(org.eclipse.cdt.make.core.IMakeTargetListener) + */ + public void removeListener(IMakeTargetListener listener) { + // dinglis-TODO Auto-generated method stub + + } + +}