/* Author: Jeff Dalton <J.Dalton@ed.ac.uk>
 * Updated: Mon Apr 23 23:52:04 2001 by Jeff Dalton
 * Copyright: (c) 2000, AIAI, University of Edinburgh
 */

package ix.icore.domain;

import java.util.*;

import ix.util.*;
import ix.util.lisp.*;
import ix.util.match.*;

// In theory, the product schema could be defined for a pattern,
// rather than just a name, and then could be looked up by matching
// and instantiated, so that a product schema could define more
// than one actual product.

/**
 * A description of a process product.
 */

public class ProductSchema implements ProductSchemaSymbols {

    public Object name;

    public ProductSchema(LList def) {
	for (LList slots = def; slots != Lisp.NIL; slots = slots.cdr()) {
	    Cons slot = (Cons)slots.car();
	    Symbol name = (Symbol)slot.car();
	    Object value = slot.cdr();
	    if (name == K_NAME)
		this.name = ((LList)value).car();
	    else
		Debug.warn("Illegal product schema slot:" + slot);
	}
    }

}
