Hi Simone, I wonder why not using Guava's Preconditions ? Sounds really the same (checkState, checkArgs, ...)
Cheers, Benoit. 2012/2/24 <[email protected]>: > Author: simonetripodi > Date: Fri Feb 24 14:51:43 2012 > New Revision: 1293280 > > URL: http://svn.apache.org/viewvc?rev=1293280&view=rev > Log: > first checkin of internal stuff > > Added: > > incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/ > > incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/Assertions.java > (with props) > > incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/package-info.java > (with props) > > Added: > incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/Assertions.java > URL: > http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/Assertions.java?rev=1293280&view=auto > ============================================================================== > --- > incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/Assertions.java > (added) > +++ > incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/Assertions.java > Fri Feb 24 14:51:43 2012 > @@ -0,0 +1,112 @@ > +package org.apache.directmemory.utils; > + > +/* > + * Licensed to the Apache Software Foundation (ASF) under one or more > + * contributor license agreements. See the NOTICE file distributed with > + * this work for additional information regarding copyright ownership. > + * The ASF licenses this file to You under the Apache License, Version 2.0 > + * (the "License"); you may not use this file except in compliance with > + * the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, software > + * distributed under the License is distributed on an "AS IS" BASIS, > + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > + * See the License for the specific language governing permissions and > + * limitations under the License. > + */ > + > +import static java.lang.String.format; > + > +/** > + * Code partially extracted from Google Collections > + */ > +public final class Assertions > +{ > + > + private Assertions() > + { > + // do nothing > + } > + > + /** > + * Ensures the truth of an expression involving one or more parameters > to the > + * calling method. > + * > + * @param expression a boolean expression > + * @param errorMessageTemplate a template for the exception message > should the > + * check fail. The message is formed by replacing each {@code %s} > + * placeholder in the template with an argument. These are matched by > + * position - the first {@code %s} gets {@code errorMessageArgs[0]}, > etc. > + * Unmatched arguments will be appended to the formatted message in > square > + * braces. Unmatched placeholders will be left as-is. > + * @param errorMessageArgs the arguments to be substituted into the > message > + * template. Arguments are converted to strings using > + * {@link String#valueOf(Object)}. > + * @throws IllegalArgumentException if {@code expression} is false > + * @throws NullPointerException if the check fails and either {@code > + * errorMessageTemplate} or {@code errorMessageArgs} is null (don't > let > + * this happen) > + */ > + public static void checkArgument( boolean expression, String > errorMessageTemplate, Object... errorMessageArgs ) > + { > + if ( !expression ) > + { > + throw new IllegalArgumentException( format( > errorMessageTemplate, errorMessageArgs ) ); > + } > + } > + > + /** > + * Ensures the truth of an expression involving the state of the calling > + * instance, but not involving any parameters to the calling method. > + * > + * @param expression a boolean expression > + * @param errorMessageTemplate a template for the exception message > should the > + * check fail. The message is formed by replacing each {@code %s} > + * placeholder in the template with an argument. These are matched by > + * position - the first {@code %s} gets {@code errorMessageArgs[0]}, > etc. > + * Unmatched arguments will be appended to the formatted message in > square > + * braces. Unmatched placeholders will be left as-is. > + * @param errorMessageArgs the arguments to be substituted into the > message template. > + * @throws IllegalStateException if {@code expression} is false > + * @throws NullPointerException if the check fails and either {@code > + * errorMessageTemplate} or {@code errorMessageArgs} is null (don't > let > + * this happen) > + */ > + public static void checkState( boolean expression, String > errorMessageTemplate, Object... errorMessageArgs ) > + { > + if ( !expression ) > + { > + throw new IllegalStateException( format( errorMessageTemplate, > errorMessageArgs ) ); > + } > + } > + > + /** > + * Ensures that an object reference passed as a parameter to the calling > + * method is not null. > + * > + * @param reference an object reference > + * @param errorMessageTemplate a template for the exception message > should the > + * check fail. The message is formed by replacing each {@code %s} > + * placeholder in the template with an argument. These are matched by > + * position - the first {@code %s} gets {@code errorMessageArgs[0]}, > etc. > + * Unmatched arguments will be appended to the formatted message in > square > + * braces. Unmatched placeholders will be left as-is. > + * @param errorMessageArgs the arguments to be substituted into the > message > + * template. Arguments are converted to strings using > + * {@link String#valueOf(Object)}. > + * @return the non-null reference that was validated > + * @throws NullPointerException if {@code reference} is null > + */ > + public static <T> T checkNotNull( T reference, String > errorMessageTemplate, Object... errorMessageArgs ) > + { > + if ( reference == null ) > + { > + // If either of these parameters is null, the right thing > happens anyway > + throw new NullPointerException( format( errorMessageTemplate, > errorMessageArgs ) ); > + } > + return reference; > + } > + > +} > > Propchange: > incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/Assertions.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: > incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/Assertions.java > ------------------------------------------------------------------------------ > svn:keywords = Date Author Id Revision HeadURL > > Propchange: > incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/Assertions.java > ------------------------------------------------------------------------------ > svn:mime-type = text/plain > > Added: > incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/package-info.java > URL: > http://svn.apache.org/viewvc/incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/package-info.java?rev=1293280&view=auto > ============================================================================== > --- > incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/package-info.java > (added) > +++ > incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/package-info.java > Fri Feb 24 14:51:43 2012 > @@ -0,0 +1,25 @@ > +/** > + * Various internal use only utility classes. > + * > + * Users must not rely on classes in this package. > + */ > +package org.apache.directmemory.utils; > + > +/* > + * Licensed to the Apache Software Foundation (ASF) under one > + * or more contributor license agreements. See the NOTICE file > + * distributed with this work for additional information > + * regarding copyright ownership. The ASF licenses this file > + * to you under the Apache License, Version 2.0 (the > + * "License"); you may not use this file except in compliance > + * with the License. You may obtain a copy of the License at > + * > + * http://www.apache.org/licenses/LICENSE-2.0 > + * > + * Unless required by applicable law or agreed to in writing, > + * software distributed under the License is distributed on an > + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY > + * KIND, either express or implied. See the License for the > + * specific language governing permissions and limitations > + * under the License. > + */ > > Propchange: > incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/package-info.java > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: > incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/package-info.java > ------------------------------------------------------------------------------ > svn:keywords = Date Author Id Revision HeadURL > > Propchange: > incubator/directmemory/trunk/directmemory-cache/src/main/java/org/apache/directmemory/utils/package-info.java > ------------------------------------------------------------------------------ > svn:mime-type = text/plain > > -- sent from my Nokia 3210
