/* Copyright (C) 2009 Mobile Sorcery AB
This program is free software; you can redistribute it and/or modify it
under the terms of the Eclipse Public License v1.0.
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 Eclipse Public License v1.0 for
more details.
You should have received a copy of the Eclipse Public License v1.0 along
with this program. It is also available at http://www.eclipse.org/legal/epl-v10.html
*/
package com.mobilesorcery.sdk.core;
import org.eclipse.core.expressions.PropertyTester;
import com.mobilesorcery.sdk.core.CoreMoSyncPlugin;
import com.mobilesorcery.sdk.core.MoSyncProject;
import com.mobilesorcery.sdk.core.build.BuildSequence;
public class MoSyncNatureTester extends PropertyTester {
public static final String LIB = "lib";
public static final String EXT = "extension";
public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
MoSyncProject project = extractProject(receiver, property, args, expectedValue);
if (project != null && LIB.equals(expectedValue)) {
return MoSyncBuilder.isLib(project);
}
if (project != null && EXT.equals(expectedValue)) {
return MoSyncBuilder.isExtension(project);
}
return project != null;
}
/**
* Tries to derive a mosync project from whatever object is passed
* as the <code>receiver</code>; this method will accept <code>List</code>s,
* <code>IAdaptable</code>s, <code>IResource</code>s, and then if project
* associated with these is compatible with a MoSyncProject, return that project.
*
* @param receiver
* @param property
* @param args
* @param expectedValue
* @return
* @see MoSyncProject#isCompatible
*/
protected MoSyncProject extractProject(Object receiver, String property, Object[] args, Object expectedValue) {
return CoreMoSyncPlugin.getDefault().extractProject(receiver);
}
}