/******************************************************************************* * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Exadel, Inc. and Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.common.model.filesystems.impl; import org.jboss.tools.common.model.XModelObjectConstants; import org.jboss.tools.common.model.filesystems.impl.AbstractExtendedXMLFileImpl; import org.jboss.tools.common.model.impl.*; import org.jboss.tools.common.model.loaders.impl.SerializingLoader; import org.jboss.tools.common.model.util.*; public class SimpleFileImpl extends AbstractExtendedXMLFileImpl { private static final long serialVersionUID = 7216374720598645585L; public SimpleFileImpl() {} protected RegularChildren createChildren() { return new OrderedChildren(); } SerializingLoader loader = null; public String get(String name) { String v = super.get(name); return (!XModelObjectConstants.ATTR_NAME_BODY.equals(name)) ? v : getBody(); } public String getBody() { if(isIncorrect()) return get(ATTR_NAME_INCORRECT_BODY); String abts = get("actualBodyTimeStamp"); //$NON-NLS-1$ if(abts != null && (abts.equals("0") || abts.equals("" + getTimeStamp()))) { //$NON-NLS-1$ //$NON-NLS-2$ return get(ATTR_NAME_CORRECT_BODY); } if(loader == null) loader = (SerializingLoader)XModelObjectLoaderUtil.getObjectLoader(this); String body = loader.serializeObject(this); set(ATTR_NAME_CORRECT_BODY, body); set("actualBodyTimeStamp", "" + getTimeStamp()); //$NON-NLS-1$ //$NON-NLS-2$ return body; } }