public static < T > List < Optional < LocalProperty < T > > > normalize ( List < ? extends LocalProperty < T > > localProperties ) { List < Optional < LocalProperty < T >>> normalizedProperties = new ArrayList <> ( localProperties . size ( ) ) ; Set < T > constants = new HashSet <> ( ) ; for ( LocalProperty < T > localProperty : localProperties ) { normalizedProperties . add ( localProperty . withConstants ( constants ) ) ; constants . addAll ( localProperty . getColumns ( ) ) ; } return normalizedProperties ; }
Normalizes the local properties by removing redundant symbols but retains the original local property positions