// Path: src/main/java/org/weakref/jmx/ObjectNameGenerator.java
// public interface ObjectNameGenerator
// {
//     static ObjectNameGenerator defaultObjectNameGenerator()
//     {
//         return (type, properties) -> new ObjectNameBuilder(type.getPackage().getName())
//                 .withProperties(properties)
//                 .build();
//     }
// 
//     default String generatedNameOf(Class<?> type)
//     {
//         return generatedNameOf(type, ImmutableMap.of("name", type.getSimpleName()));
//     }
// 
//     default String generatedNameOf(Class<?> type, String name)
//     {
//         return generatedNameOf(type, ImmutableMap.<String, String>builder()
//                 .put("type", type.getSimpleName())
//                 .put("name", name)
//                 .build());
//     }
// 
//     String generatedNameOf(Class<?> type, Map<String, String> properties);
// }


import com.google.inject.Key;
import org.weakref.jmx.ObjectNameGenerator;
import java.util.function.Function;
/**
 *  Copyright 2009 Martin Traverso
 *
 *  Licensed 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.
 */
package org.weakref.jmx.guice;



class Mapping
{
// Path: src/main/java/org/weakref/jmx/ObjectNameGenerator.java
// public interface ObjectNameGenerator
// {
//     static ObjectNameGenerator defaultObjectNameGenerator()
//     {
//         return (type, properties) -> new ObjectNameBuilder(type.getPackage().getName())
//                 .withProperties(properties)
//                 .build();
//     }
// 
//     default String generatedNameOf(Class<?> type)
//     {
//         return generatedNameOf(type, ImmutableMap.of("name", type.getSimpleName()));
//     }
// 
//     default String generatedNameOf(Class<?> type, String name)
//     {
//         return generatedNameOf(type, ImmutableMap.<String, String>builder()
//                 .put("type", type.getSimpleName())
//                 .put("name", name)
//                 .build());
//     }
// 
//     String generatedNameOf(Class<?> type, Map<String, String> properties);
// }


// Path: src/main/java/org/weakref/jmx/guice/Mapping.java
import com.google.inject.Key;
import org.weakref.jmx.ObjectNameGenerator;
import java.util.function.Function;

/**
 *  Copyright 2009 Martin Traverso
 *
 *  Licensed 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.
 */
package org.weakref.jmx.guice;



class Mapping
{
    private final Function<ObjectNameGenerator, String> nameFactory;