001 /* 002 * $Id: MonoidFactory.java 1259 2007-07-29 10:18:54Z kredel $ 003 */ 004 005 package edu.jas.structure; 006 007 008 /** 009 * Monoid factory interface. 010 * Defines get one and tests for associativity and commutativity. 011 * @author Heinz Kredel 012 */ 013 014 public interface MonoidFactory<C extends MonoidElem<C>> 015 extends ElemFactory<C> { 016 017 018 /** 019 * Get the constant one for the MonoidElem. 020 * @return 1. 021 */ 022 public C getONE(); 023 024 025 /** 026 * Query if this monoid is commutative. 027 * @return true if this monoid is commutative, else false. 028 */ 029 public boolean isCommutative(); 030 031 032 /** 033 * Query if this ring is associative. 034 * @return true if this monoid is associative, else false. 035 */ 036 public boolean isAssociative(); 037 038 039 }