1e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson/* 2e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * Copyright (c) 2007 Mockito contributors 3e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson * This program is made available under the terms of the MIT License. 4e0ae5d7e87b1dd6e789803c1b9615a84bd7488b7Ian Parkinson */ 52637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinpackage org.mockito.internal.util; 62637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 72637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport org.mockito.mock.MockName; 82637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 92637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinimport java.io.Serializable; 102637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 112637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffinpublic class MockNameImpl implements MockName, Serializable { 122637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 132637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin private static final long serialVersionUID = 8014974700844306925L; 142637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin private final String mockName; 152637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin private boolean defaultName; 162637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 172637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @SuppressWarnings("unchecked") 182637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public MockNameImpl(String mockName, Class<?> classToMock) { 192637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin if (mockName == null) { 202637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin this.mockName = toInstanceName(classToMock); 212637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin this.defaultName = true; 222637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } else { 232637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin this.mockName = mockName; 242637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 252637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 262637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 272637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public MockNameImpl(String mockName) { 282637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin this.mockName = mockName; 292637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 302637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 312637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin private static String toInstanceName(Class<?> clazz) { 322637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin String className = clazz.getSimpleName(); 332637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin if (className.length() == 0) { 342637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin //it's an anonymous class, let's get name from the parent 352637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin className = clazz.getSuperclass().getSimpleName(); 362637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 372637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin //lower case first letter 382637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin return className.substring(0, 1).toLowerCase() + className.substring(1); 392637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 402637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 412637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public boolean isDefault() { 422637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin return defaultName; 432637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 442637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin 452637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin @Override 462637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin public String toString() { 472637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin return mockName; 482637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin } 492637d96c202372854a7c71466ddcc6e90fc4fc53Paul Duffin} 50