/*******************************************************************************
 * Copyright (c) 2010 University of Illinois 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: 
 * 	Albert L. Rossi - design; to be implemented in near future.
 ******************************************************************************/
package org.eclipse.ptp.rm.pbs.core.templates;

import org.eclipse.ptp.rm.pbs.core.attributes.IPBSJobAttributeData;

/**
 * Not yet implemented. When protocol changes are complete, will read full
 * attribute definition, flag and tooltip information form the model definition
 * events sent by the proxy.
 * 
 * @author arossi
 * @since 5.0
 * 
 */
public class PBSModelDefinitionAttributeToTemplateConverter extends PBSBaseAttributeToTemplateConverter {
	@Override
	public IPBSJobAttributeData getData() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	protected void initializeInternal() throws Throwable {
		// TODO Auto-generated method stub

	}
}
