@ Override public List < ? extends SatConstraint > buildConstraint ( BtrPlaceTree t , List < BtrpOperand > args ) { if ( ! checkConformance ( t , args ) ) { return Collections . emptyList ( ) ; } // Get the first parameter @ SuppressWarnings ( "unchecked" ) List < VM > s = ( List < VM > ) params [ 0 ] . transform ( this , t , args . get ( 0 ) ) ; if ( s == null ) { return Collections . emptyList ( ) ; } // Get param 'OneOf' Object obj = params [ 1 ] . transform ( this , t , args . get ( 1 ) ) ; if ( obj == null ) { return Collections . emptyList ( ) ; } if ( obj instanceof List ) { @ SuppressWarnings ( "unchecked" ) List < VM > s2 = ( List < VM > ) obj ; if ( s2 . isEmpty ( ) ) { t . ignoreError ( "Parameter '" + params [ 1 ] . getName ( ) + "' expects a non-empty list of VMs" ) ; return Collections . emptyList ( ) ; } return Precedence . newPrecedence ( s , s2 ) ; } else if ( obj instanceof String ) { String timestamp = ( String ) obj ; if ( "" . equals ( timestamp ) ) { t . ignoreError ( "Parameter '" + params [ 1 ] . getName ( ) + "' expects a non-empty string" ) ; return Collections . emptyList ( ) ; } return Deadline . newDeadline ( s , timestamp ) ; } else { return Collections . emptyList ( ) ; } }
Build a precedence constraint .