public boolean equals(Object object) {
		if (this == object)
			return true;
		if (!(object instanceof AccessRuleSet))
			return false;
		AccessRuleSet otherRuleSet = (AccessRuleSet) object;
		if (this.messageTemplates.length != MESSAGE_TEMPLATES_LENGTH ||
				otherRuleSet.messageTemplates.length != MESSAGE_TEMPLATES_LENGTH)
			return false; // guard
		for (int i = 0; i < MESSAGE_TEMPLATES_LENGTH; i++)
			if (!this.messageTemplates[i].equals(otherRuleSet.messageTemplates[i]))
				return false;
		int rulesLength = this.accessRules.length;
		if (rulesLength != otherRuleSet.accessRules.length) return false;
		for (int i = 0; i < rulesLength; i++)
			if (!this.accessRules[i].equals(otherRuleSet.accessRules[i]))
				return false;
		return true;
	}