package org.eclipse.jdt.internal.core;

/*
 * (c) Copyright IBM Corp. 2000, 2001.
 * All Rights Reserved.
 */
import org.eclipse.core.resources.*;

/** 
 * Element info for IInitializer elements. 
 */
/* package */ class InitializerElementInfo extends MemberElementInfo {
}
