<commit_before>/**
 *
 */
package org.jmist.framework.model;

import org.jmist.framework.IBounded3;
import org.jmist.framework.IIntersection;
import org.jmist.framework.ISurfacePoint;
import org.jmist.framework.IVisibilityFunction3;
import org.jmist.toolkit.*;

/**
 * @author bkimmel
 *
 */
public interface IModelElement extends IVisibilityFunction3, IBounded3 {

	String getName();

	boolean contains(Point3 p);

	ISurfacePoint generateRandomSurfacePoint();

	void addChild(IModelElement child) throws UnsupportedOperationException;
	void removeChild(String name);
	IModelElement findChild(String name);

	Iterable<IModelElement> children();

}<commit_msg>Refactoring IModelElement.<commit_after>/**
 *
 */
package org.jmist.framework.model;

import org.jmist.framework.IBounded3;
import org.jmist.framework.IIntersection;
import org.jmist.framework.ISurfacePoint;
import org.jmist.framework.IVisibilityFunction3;
import org.jmist.toolkit.*;

/**
 * @author bkimmel
 *
 */
public interface IModelElement extends IVisibilityFunction3, IBounded3 {

	boolean contains(Point3 p);

	ISurfacePoint generateRandomSurfacePoint();

	

	/*
	 * The following methods maintain the list of children of this
	 * model element.
	 */

	/**
	 * Adds a child model element.
	 * @param child The child to add.
	 * @throws UnsupportedOperationException If this model element is not
	 * 		a composite model element.
	 */
	void addChild(IModelElement child) throws UnsupportedOperationException;

	/**
	 * Removes a child model element.  This method has no effect if {@code child}
	 * is not a child of this element.
	 * @param child The child to remove.
	 */
	void removeChild(IModelElement child);

	/**
	 * Gets the collection of children of this model element.
	 * @return The collection of children of this model element.
	 */
	Iterable<IModelElement> children();

}
{'fraction_non_alphanumeric': 0.09557235421166306, 'fraction_numerical': 0.005399568034557235, 'mean_word_length': 4.581325301204819, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1453860', 'n_tokens_mistral': 575, 'n_tokens_neox': 528, 'n_words': 157}