001    /*
002     * $Id: RingFactory.java 1259 2007-07-29 10:18:54Z kredel $
003     */
004    
005    package edu.jas.structure;
006    
007    
008    /**
009     * Ring factory interface.
010     * Defines test for field and access of characteristic.
011     * @author Heinz Kredel
012     */
013    
014    public interface RingFactory<C extends RingElem<C>> 
015        extends AbelianGroupFactory<C>, MonoidFactory<C> {
016    
017    
018        /**
019         * Query if this ring is a field.
020         * May return false if it is to hard to determine if this ring is a field.
021         * @return true if it is known that this ring is a field, else false.
022         */
023        public boolean isField();
024    
025    
026        /**
027         * Characteristic of this ring.
028         * @return characteristic of this ring.
029         */
030        public java.math.BigInteger characteristic();
031    
032    }