/*******************************************************************************
* Copyright (c) 2007, 2010 Intel Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Intel Corporation - Initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.core.settings.model.extension.impl;
import java.util.Arrays;
import org.eclipse.cdt.core.envvar.IEnvironmentContributor;
import org.eclipse.cdt.core.settings.model.ICOutputEntry;
import org.eclipse.cdt.core.settings.model.extension.CBuildData;
import org.eclipse.cdt.core.settings.model.util.CDataUtil;
import org.eclipse.core.runtime.IPath;
public class CDefaultBuildData extends CBuildData {
protected IPath fCWD;
protected String[] fErrorParserIDs;
protected ICOutputEntry fOutputEntries[];
protected static final String[] EMPTY_STRING_ARRAY = new String[0];
protected static final ICOutputEntry[] EMPTY_OUTPUT_ENTRIES_ARRAY = new ICOutputEntry[0];
protected String fName;
protected String fId;
protected boolean fIsModified;
// protected CConfigurationData fCfg;
// private CDataFacroty fFactory;
// public CDefaultBuildData(CConfigurationData cfg, CDataFacroty factory) {
// fCfg = cfg;
// if(factory == null)
// factory = new CDataFacroty();
// fFactory = factory;
// }
public CDefaultBuildData(){
}
public CDefaultBuildData(String id, CBuildData base) {
fId = id;
copySettingsFrom(base);
}
protected void copySettingsFrom(CBuildData data){
if(data != null){
fName = data.getName();
fCWD = data.getBuilderCWD();
fErrorParserIDs = data.getErrorParserIDs();
fOutputEntries = data.getOutputDirectories();
}
}
@Override
public IPath getBuilderCWD() {
return fCWD;
}
@Override
public String[] getErrorParserIDs() {
if(fErrorParserIDs != null && fErrorParserIDs.length != 0)
return fErrorParserIDs.clone();
return EMPTY_STRING_ARRAY;
}
@Override
public ICOutputEntry[] getOutputDirectories() {
if(fOutputEntries != null && fOutputEntries.length != 0)
return fOutputEntries.clone();
return EMPTY_OUTPUT_ENTRIES_ARRAY;
}
@Override
public void setBuilderCWD(IPath path) {
if(CDataUtil.objectsEqual(path, fCWD))
return;
fCWD = path;
setModified(true);
}
@Override
public void setErrorParserIDs(String[] ids) {
if(Arrays.equals(ids, fErrorParserIDs))
return;
if(ids != null && ids.length != 0)
fErrorParserIDs = ids.clone();
else
fErrorParserIDs = ids;
setModified(true);
}
@Override
public void setOutputDirectories(ICOutputEntry[] entries) {
if(Arrays.equals(entries, fOutputEntries))
return;
if(entries != null && entries.length != 0)
fOutputEntries = entries.clone();
else
fOutputEntries = entries;
setModified(true);
}
@Override
public String getId() {
return fId;
}
@Override
public String getName() {
return fName;
}
@Override
public boolean isValid() {
return getId() != null;
}
@Override
public IEnvironmentContributor getBuildEnvironmentContributor() {
// TODO Auto-generated method stub
return null;
}
public boolean isModified(){
return fIsModified;
}
public void setModified(boolean modified){
fIsModified = modified;
}
}