package org.flowerplatform.codesync.code.javascript.config.extension;
import java.util.Map;
import org.eclipse.emf.ecore.resource.Resource;
import org.flowerplatform.codesync.code.javascript.config.JavaScriptDescriptors;
import org.flowerplatform.codesync.config.extension.AddNewExtension;
import org.flowerplatform.codesync.remote.CodeSyncOperationsService;
import org.flowerplatform.emf_model.notation.View;
import com.crispico.flower.mp.model.codesync.CodeSyncElement;
/**
* @author Cristian Spiescu
*/
public class AddNewExtension_BackboneClass implements AddNewExtension {
@Override
public boolean addNew(CodeSyncElement codeSyncElement, View parent,
Resource codeSyncMappingResource, Map<String, Object> parameters) {
if (!codeSyncElement.getType().equals(JavaScriptDescriptors.TYPE_BACKBONE_CLASS)) {
return true;
}
if (!CodeSyncOperationsService.getInstance().hasChildWithKeyFeatureValue(codeSyncElement, JavaScriptDescriptors.TYPE_REQUIRE_ENTRY, "$")) {
CodeSyncElement child = CodeSyncOperationsService.getInstance().create(JavaScriptDescriptors.TYPE_REQUIRE_ENTRY);
CodeSyncOperationsService.getInstance().setFeatureValue(child, JavaScriptDescriptors.FEATURE_VAR_NAME, "$");
CodeSyncOperationsService.getInstance().setFeatureValue(child, JavaScriptDescriptors.FEATURE_DEPENDENCY_PATH, "jquery");
CodeSyncOperationsService.getInstance().add(codeSyncElement, child);
}
if (!CodeSyncOperationsService.getInstance().hasChildWithKeyFeatureValue(codeSyncElement, JavaScriptDescriptors.TYPE_REQUIRE_ENTRY, "_")) {
CodeSyncElement child = CodeSyncOperationsService.getInstance().create(JavaScriptDescriptors.TYPE_REQUIRE_ENTRY);
CodeSyncOperationsService.getInstance().setFeatureValue(child, JavaScriptDescriptors.FEATURE_VAR_NAME, "_");
CodeSyncOperationsService.getInstance().setFeatureValue(child, JavaScriptDescriptors.FEATURE_DEPENDENCY_PATH, "underscore");
CodeSyncOperationsService.getInstance().add(codeSyncElement, child);
}
return true;
}
}