private function validateAnnotations()
    {
        //Count annotations in the annotation namespace, ignore annotations not in our namespace
        $count = 0;
        foreach($this->annotations as $a)
        {
            //If you find the namespace in the class name, add to count
            if(strrpos(get_class($a), self::ANNOTATION_NAMESPACE) !== false)
            {
                $count++;
            }
        }

        switch($count)
        {
            //0 annotations, just ignore
            case 0:

                return;

            //1 Annotation, it can't be index.
            case 1:

                if($this->getAnnotationIndex(self::INDEX) < 0)
                {
                    //It's not index, return.
                    return;
                }

                throw new Exception("@Index cannot be the only annotation on {$this->name} in {$this->property->getDeclaringClass()->getName()}.");

            //2 Annotations, they have to be index and property.
            case 2:

                if( ($this->getAnnotationIndex(self::PROPERTY) >= 0) && ($this->getAnnotationIndex(self::INDEX) >= 0))
                {
                    //They are index and property, return
                    return;
                }

                break;
        }

        //It didn't fall into any of the categories, must be invalid
        throw new Exception("Invalid annotation combination on {$this->name} in {$this->property->getDeclaringClass()->getName()}.");
    }
private function validateAnnotations()
    {
        //Count annotations in the annotation namespace, ignore annotations not in our namespace
        $count = 0;
        foreach($this->annotations as $a)
        {
            //If you find the namespace in the class name, add to count
            if(strrpos(get_class($a), self::ANNOTATION_NAMESPACE) !== false)
            {
                $count++;
            }
        }

        switch($count)
        {
            //0 annotations, just ignore
            case 0:

                return;

            //1 Annotation, it can't be index.
            case 1:

                if($this->getAnnotationIndex(self::INDEX) < 0)
                {
                    //It's not index, return.
                    return;
                }

                throw new Exception("@Index cannot be the only annotation on {$this->name} in {$this->property->getDeclaringClass()->getName()}.");

            //2 Annotations, they have to be index and property.
            case 2:

                if( ($this->getAnnotationIndex(self::PROPERTY) >= 0) && ($this->getAnnotationIndex(self::INDEX) >= 0))
                {
                    //They are index and property, return
                    return;
                }

                break;
        }

        //It didn't fall into any of the categories, must be invalid
        throw new Exception("Invalid annotation combination on {$this->name} in {$this->property->getDeclaringClass()->getName()}.");
    }
private function validateAnnotations ( ) { //Count annotations in the annotation namespace, ignore annotations not in our namespace $ count = 0 ; foreach ( $ this -> annotations as $ a ) { //If you find the namespace in the class name, add to count if ( strrpos ( get_class ( $ a ) , self :: ANNOTATION_NAMESPACE ) !== false ) { $ count ++ ; } } switch ( $ count ) { //0 annotations, just ignore case 0 : return ; //1 Annotation, it can't be index. case 1 : if ( $ this -> getAnnotationIndex ( self :: INDEX ) < 0 ) { //It's not index, return. return ; } throw new Exception ( "@Index cannot be the only annotation on {$this->name} in {$this->property->getDeclaringClass()->getName()}." ) ; //2 Annotations, they have to be index and property. case 2 : if ( ( $ this -> getAnnotationIndex ( self :: PROPERTY ) >= 0 ) && ( $ this -> getAnnotationIndex ( self :: INDEX ) >= 0 ) ) { //They are index and property, return return ; } break ; } //It didn't fall into any of the categories, must be invalid throw new Exception ( "Invalid annotation combination on {$this->name} in {$this->property->getDeclaringClass()->getName()}." ) ; }
Validates the annotation combination on a property.

@throws Exception If the combination is invalid in some way.
Validates the annotation combination on a property .